drm/sched: Move free worker re-queuing out of the if block
authorTvrtko Ursulin <tvrtko.ursulin@intel.com>
Thu, 2 Nov 2023 10:55:35 +0000 (10:55 +0000)
committerLuben Tuikov <ltuikov89@gmail.com>
Sun, 5 Nov 2023 01:18:08 +0000 (21:18 -0400)
Whether or not there are more jobs to clean up does not depend on the
existance of the current job, given both drm_sched_get_finished_job and
drm_sched_free_job_queue_if_done take and drop the job list lock.
Therefore it is confusing to make it read like there is a dependency.

Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Cc: Luben Tuikov <ltuikov89@gmail.com>
Cc: Matthew Brost <matthew.brost@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20231102105538.391648-3-tvrtko.ursulin@linux.intel.com
Reviewed-by: Luben Tuikov <ltuikov89@gmail.com>
Signed-off-by: Luben Tuikov <ltuikov89@gmail.com>
drivers/gpu/drm/scheduler/sched_main.c

index fb64b35451f5a93106f0b44228d4228d9a8d4426..e1658030613f5c323fc80f9f82ca2dbc1e41d077 100644 (file)
@@ -1065,12 +1065,11 @@ static void drm_sched_free_job_work(struct work_struct *w)
                return;
 
        job = drm_sched_get_finished_job(sched);
-       if (job) {
+       if (job)
                sched->ops->free_job(job);
 
-               drm_sched_free_job_queue_if_done(sched);
-               drm_sched_run_job_queue_if_ready(sched);
-       }
+       drm_sched_free_job_queue_if_done(sched);
+       drm_sched_run_job_queue_if_ready(sched);
 }
 
 /**