drm/i915: Hold irq-off for the entire fake lock period
authorChris Wilson <chris@chris-wilson.co.uk>
Fri, 23 Aug 2019 13:26:46 +0000 (14:26 +0100)
committerChris Wilson <chris@chris-wilson.co.uk>
Fri, 23 Aug 2019 18:44:21 +0000 (19:44 +0100)
commit6dcb85a0ad990455ae7c596e3fc966ad9c1ba9c5
tree646ebb8f3c7eb9b207d44f9a1c5b2af16b8a7eb5
parent0b14d96820d1fd05ea610a0f5f952b34e5a24f2c
drm/i915: Hold irq-off for the entire fake lock period

Sadly lockdep records when the irqs are re-enabled and then marks up the
fake lock as being irq-unsafe. Our hand is forced and so we must mark up
the entire fake lock critical section as irq-off.

Hopefully this is the last tweak required!

v2: Not quite, we need to mark the timeline spinlock as irqsafe. That
was a genuine bug being hidden by the earlier lockdep splat.

Fixes: d67739268cf0 ("drm/i915/gt: Mark up the nested engine-pm timeline lock as irqsafe")
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Cc: Mika Kuoppala <mika.kuoppala@linux.intel.com>
Reviewed-by: Mika Kuoppala <mika.kuoppala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20190823132700.25286-2-chris@chris-wilson.co.uk
drivers/gpu/drm/i915/gt/intel_engine_pm.c
drivers/gpu/drm/i915/gt/intel_reset.c
drivers/gpu/drm/i915/gt/intel_timeline.c
drivers/gpu/drm/i915/i915_gem.c
drivers/gpu/drm/i915/i915_request.c