summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorErico Nunes <nunes.erico@gmail.com>2019-05-21 02:16:49 +0300
committerChristian König <christian.koenig@amd.com>2019-05-22 09:42:50 +0300
commit794c686eb7830b12e27999fd776f6d021ce22658 (patch)
treebe917f9c0ae96cbba4cf845bf54f0650f3c23026 /drivers
parent7793a108964924dd2802ee8c5dff2e9f3a9cd54a (diff)
downloadlinux-794c686eb7830b12e27999fd776f6d021ce22658.tar.xz
drm/scheduler: Fix job cleanup without timeout handler
After "5918045c4ed4 drm/scheduler: rework job destruction", jobs are only deleted when the timeout handler is able to be cancelled successfully. In case no timeout handler is running (timeout == MAX_SCHEDULE_TIMEOUT), job cleanup would be skipped which may result in memory leaks. Add the handling for the (timeout == MAX_SCHEDULE_TIMEOUT) case in drm_sched_cleanup_jobs. Signed-off-by: Erico Nunes <nunes.erico@gmail.com> Signed-off-by: Christian König <christian.koenig@amd.com> Reviewed-by: Christian König <christian.koenig@amd.com> Link: https://patchwork.freedesktop.org/patch/306025/?series=60878&rev=2
Diffstat (limited to 'drivers')
-rw-r--r--drivers/gpu/drm/scheduler/sched_main.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/gpu/drm/scheduler/sched_main.c b/drivers/gpu/drm/scheduler/sched_main.c
index f8f0e1c19002..10d1d37e644a 100644
--- a/drivers/gpu/drm/scheduler/sched_main.c
+++ b/drivers/gpu/drm/scheduler/sched_main.c
@@ -630,7 +630,8 @@ static void drm_sched_cleanup_jobs(struct drm_gpu_scheduler *sched)
unsigned long flags;
/* Don't destroy jobs while the timeout worker is running */
- if (!cancel_delayed_work(&sched->work_tdr))
+ if (sched->timeout != MAX_SCHEDULE_TIMEOUT &&
+ !cancel_delayed_work(&sched->work_tdr))
return;