]> git.baikalelectronics.ru Git - kernel.git/commitdiff
drm/i915/gt: Schedule next retirement worker first
authorChris Wilson <chris@chris-wilson.co.uk>
Tue, 19 Nov 2019 16:25:59 +0000 (16:25 +0000)
committerChris Wilson <chris@chris-wilson.co.uk>
Tue, 19 Nov 2019 16:46:58 +0000 (16:46 +0000)
As we may park the gt during request retirement, we may cancel the
retirement worker only to then program the delayed worker once more.

If we schedule the next delayed retirement worker first, if we then park
the gt, the work will remain cancelled.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20191119162559.3313003-2-chris@chris-wilson.co.uk
drivers/gpu/drm/i915/gt/intel_gt_requests.c

index a79e6efb31a26b8341d5f3055c60c7a99fc85db0..25291e2af21e4c139018e4386a635a3ed41a82f6 100644 (file)
@@ -110,9 +110,9 @@ static void retire_work_handler(struct work_struct *work)
        struct intel_gt *gt =
                container_of(work, typeof(*gt), requests.retire_work.work);
 
-       intel_gt_retire_requests(gt);
        schedule_delayed_work(&gt->requests.retire_work,
                              round_jiffies_up_relative(HZ));
+       intel_gt_retire_requests(gt);
 }
 
 void intel_gt_init_requests(struct intel_gt *gt)