Commit 794c686e authored by Erico Nunes's avatar Erico Nunes Committed by Christian König
Browse files

drm/scheduler: Fix job cleanup without timeout handler



After "5918045c 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: default avatarErico Nunes <nunes.erico@gmail.com>
Signed-off-by: default avatarChristian König <christian.koenig@amd.com>
Reviewed-by: default avatarChristian König <christian.koenig@amd.com>
Link: https://patchwork.freedesktop.org/patch/306025/?series=60878&rev=2
parent 7793a108
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -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;