]> git.baikalelectronics.ru Git - kernel.git/commit
drm/i915/execlists: Split spinlock from its irq disabling side-effect
authorChris Wilson <chris@chris-wilson.co.uk>
Fri, 2 Mar 2018 14:32:45 +0000 (14:32 +0000)
committerChris Wilson <chris@chris-wilson.co.uk>
Fri, 2 Mar 2018 23:11:12 +0000 (23:11 +0000)
commit0abb616b57e89dd0d0b1d63bf245d010430b30f2
treec2d2431dcea1baed12750012fb07caa1ec95976d
parent727e4faa4352e89e846347cde9455f8ccf1ecc7d
drm/i915/execlists: Split spinlock from its irq disabling side-effect

During reset/wedging, we have to clean up the requests on the timeline
and flush the pending interrupt state. Currently, we are abusing the irq
disabling of the timeline spinlock to protect the irq state in
conjunction to the engine's timeline requests, but this is accidental
and conflates the spinlock with the irq state. A baffling state of
affairs for the reader.

Instead, explicitly disable irqs over the critical section, and separate
modifying the irq state from the timeline's requests.

Suggested-by: Mika Kuoppala <mika.kuoppala@linux.intel.com>
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Mika Kuoppala <mika.kuoppala@linux.intel.com>
Cc: Michel Thierry <michel.thierry@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20180302143246.2579-4-chris@chris-wilson.co.uk
Reviewed-by: Mika Kuoppala <mika.kuoppala@linux.intel.com>
drivers/gpu/drm/i915/intel_lrc.c