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)
committerRodrigo Vivi <rodrigo.vivi@intel.com>
Fri, 6 Sep 2019 16:53:07 +0000 (09:53 -0700)
commitff36c5c4fd0b3783ed982ecf292a42d20c2f2725
tree424e0a107e7269bb6a371eee042dacdf693cadf6
parent0ac072cced08390b9b31fe3c56c364c3ef2f6d6a
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
(cherry picked from commit 6dcb85a0ad990455ae7c596e3fc966ad9c1ba9c5)
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
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