diff options
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/gpu/nvgpu/vgpu/vgpu.c | 8 |
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 | ||
120 | static void vgpu_channel_abort_cleanup(struct gk20a *g, u32 chid) | 120 | static 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 | ||
128 | static void vgpu_set_error_notifier(struct gk20a *g, | 134 | static void vgpu_set_error_notifier(struct gk20a *g, |