summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/gpu/nvgpu/vgpu/vgpu.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/drivers/gpu/nvgpu/vgpu/vgpu.c b/drivers/gpu/nvgpu/vgpu/vgpu.c
index 7d7df9b3..266b801e 100644
--- a/drivers/gpu/nvgpu/vgpu/vgpu.c
+++ b/drivers/gpu/nvgpu/vgpu/vgpu.c
@@ -119,10 +119,16 @@ static void vgpu_handle_channel_event(struct gk20a *g,
119 119
120static void vgpu_channel_abort_cleanup(struct gk20a *g, u32 chid) 120static void vgpu_channel_abort_cleanup(struct gk20a *g, u32 chid)
121{ 121{
122 struct channel_gk20a *ch = &g->fifo.channel[chid]; 122 struct channel_gk20a *ch = gk20a_channel_get(&g->fifo.channel[chid]);
123
124 if (ch == NULL) {
125 nvgpu_err(g, "invalid channel id %d", chid);
126 return;
127 }
123 128
124 ch->has_timedout = true; 129 ch->has_timedout = true;
125 g->ops.fifo.ch_abort_clean_up(ch); 130 g->ops.fifo.ch_abort_clean_up(ch);
131 gk20a_channel_put(ch);
126} 132}
127 133
128static void vgpu_set_error_notifier(struct gk20a *g, 134static void vgpu_set_error_notifier(struct gk20a *g,