Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

drm/i915: Redo "Remove i915_request.lock requirement for execution callbacks"

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
(cherry picked from commit 35faeb7de9ef83da510a048f2016061f1e31d5fc)
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>

authored by

Chris Wilson and committed by
Rodrigo Vivi
5701a66e 4fe9af8e

+2 -10
+2 -10
drivers/gpu/drm/i915/i915_request.c
··· 593 593 __notify_execute_cb_irq(request); 594 594 595 595 /* We may be recursing from the signal callback of another i915 fence */ 596 - if (!i915_request_signaled(request)) { 597 - spin_lock_nested(&request->lock, SINGLE_DEPTH_NESTING); 598 - 599 - if (test_bit(DMA_FENCE_FLAG_ENABLE_SIGNAL_BIT, 600 - &request->fence.flags) && 601 - !i915_request_enable_breadcrumb(request)) 602 - intel_engine_signal_breadcrumbs(engine); 603 - 604 - spin_unlock(&request->lock); 605 - } 596 + if (test_bit(DMA_FENCE_FLAG_ENABLE_SIGNAL_BIT, &request->fence.flags)) 597 + i915_request_enable_breadcrumb(request); 606 598 607 599 return result; 608 600 }