drm/i915: Redo "Remove i915_request.lock requirement for execution callbacks"
authorChris Wilson <chris@chris-wilson.co.uk>
Fri, 25 Sep 2020 10:11:06 +0000 (11:11 +0100)
committerChris Wilson <chris@chris-wilson.co.uk>
Sat, 26 Sep 2020 09:57:42 +0000 (10:57 +0100)
The reordering and rebasing of commit 2e4c6c1a9db5 ("drm/i915: Remove
i915_request.lock requirement for execution callbacks") caused it to
revert an earlier correction. Let us restore commit 99f0a640d464
("drm/i915: Remove requirement for holding i915_request.lock for
breadcrumbs")

Fixes: 2e4c6c1a9db5 ("drm/i915: Remove i915_request.lock requirement for execution callbacks")
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20200925101107.27869-1-chris@chris-wilson.co.uk
drivers/gpu/drm/i915/i915_request.c

index 11e2724..436ce36 100644 (file)
@@ -593,16 +593,8 @@ xfer:
        __notify_execute_cb_irq(request);
 
        /* We may be recursing from the signal callback of another i915 fence */
-       if (!i915_request_signaled(request)) {
-               spin_lock_nested(&request->lock, SINGLE_DEPTH_NESTING);
-
-               if (test_bit(DMA_FENCE_FLAG_ENABLE_SIGNAL_BIT,
-                            &request->fence.flags) &&
-                   !i915_request_enable_breadcrumb(request))
-                       intel_engine_signal_breadcrumbs(engine);
-
-               spin_unlock(&request->lock);
-       }
+       if (test_bit(DMA_FENCE_FLAG_ENABLE_SIGNAL_BIT, &request->fence.flags))
+               i915_request_enable_breadcrumb(request);
 
        return result;
 }