drm/i915: Check that the breadcrumb wasn't disarmed automatically before parking
authorChris Wilson <chris@chris-wilson.co.uk>
Tue, 31 Oct 2017 12:22:35 +0000 (12:22 +0000)
committerChris Wilson <chris@chris-wilson.co.uk>
Wed, 1 Nov 2017 13:43:14 +0000 (13:43 +0000)
commite5330ac1f50b897d245753828e8887f297f69dd0
tree96a9e560520617907723a52b0c3599b076f8fd55
parent1d033beb20d6d5885587a02a393b6598d766a382
drm/i915: Check that the breadcrumb wasn't disarmed automatically before parking

We will disarm the breadcrumb interrupt if we see a user interrupt
whilst no one is waiting. This may race with the call to
intel_engine_disarm_breadcrumbs() triggering an assert that we aren't
trying to do the same job twice. Prevent this by checking that the irq
is still armed after flushing the interrupt (for the irq spinlock).

Fixes: bcbd5c33a342 ("drm/i915/guc: Always enable the breadcrumbs irq")
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Cc: MichaƂ Winiarski <michal.winiarski@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20171031122235.1395-1-chris@chris-wilson.co.uk
Reviewed-by: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
drivers/gpu/drm/i915/intel_breadcrumbs.c