diff options
Diffstat (limited to 'drivers/gpu/nvgpu')
-rw-r--r-- | drivers/gpu/nvgpu/gk20a/channel_gk20a.c | 4 |
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); | |||
69 | static u32 gk20a_get_channel_watchdog_timeout(struct channel_gk20a *ch); | 69 | static u32 gk20a_get_channel_watchdog_timeout(struct channel_gk20a *ch); |
70 | 70 | ||
71 | static void gk20a_channel_clean_up_jobs(struct work_struct *work); | 71 | static void gk20a_channel_clean_up_jobs(struct work_struct *work); |
72 | static 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 */ |
74 | static struct channel_gk20a *allocate_channel(struct fifo_gk20a *f) | 76 | static 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) |