summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/nvgpu/gk20a/channel_gk20a.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpu/nvgpu/gk20a/channel_gk20a.c')
-rw-r--r--drivers/gpu/nvgpu/gk20a/channel_gk20a.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/gpu/nvgpu/gk20a/channel_gk20a.c b/drivers/gpu/nvgpu/gk20a/channel_gk20a.c
index 6c7ff551..18f2e896 100644
--- a/drivers/gpu/nvgpu/gk20a/channel_gk20a.c
+++ b/drivers/gpu/nvgpu/gk20a/channel_gk20a.c
@@ -69,6 +69,8 @@ static void gk20a_free_error_notifiers(struct channel_gk20a *ch);
69static u32 gk20a_get_channel_watchdog_timeout(struct channel_gk20a *ch); 69static u32 gk20a_get_channel_watchdog_timeout(struct channel_gk20a *ch);
70 70
71static void gk20a_channel_clean_up_jobs(struct work_struct *work); 71static void gk20a_channel_clean_up_jobs(struct work_struct *work);
72static void gk20a_channel_cancel_job_clean_up(struct channel_gk20a *c,
73 bool wait_for_completion);
72 74
73/* allocate GPU channel */ 75/* allocate GPU channel */
74static struct channel_gk20a *allocate_channel(struct fifo_gk20a *f) 76static struct channel_gk20a *allocate_channel(struct fifo_gk20a *f)
@@ -460,6 +462,8 @@ void gk20a_channel_abort_clean_up(struct channel_gk20a *ch)
460 struct channel_gk20a_job *job, *n; 462 struct channel_gk20a_job *job, *n;
461 bool released_job_semaphore = false; 463 bool released_job_semaphore = false;
462 464
465 gk20a_channel_cancel_job_clean_up(ch, true);
466
463 /* ensure no fences are pending */ 467 /* ensure no fences are pending */
464 mutex_lock(&ch->sync_lock); 468 mutex_lock(&ch->sync_lock);
465 if (ch->sync) 469 if (ch->sync)