diff options
author | Erico Nunes <nunes.erico@gmail.com> | 2019-05-21 02:16:49 +0300 |
---|---|---|
committer | Christian König <christian.koenig@amd.com> | 2019-05-22 09:42:50 +0300 |
commit | 794c686eb7830b12e27999fd776f6d021ce22658 (patch) | |
tree | be917f9c0ae96cbba4cf845bf54f0650f3c23026 /drivers/gpu/drm/scheduler | |
parent | 7793a108964924dd2802ee8c5dff2e9f3a9cd54a (diff) | |
download | linux-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/gpu/drm/scheduler')
-rw-r--r-- | drivers/gpu/drm/scheduler/sched_main.c | 3 |
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; |