]> git.baikalelectronics.ru Git - kernel.git/commit
drm/i915: Serialize per-engine resets against new requests
authorChris Wilson <chris@chris-wilson.co.uk>
Fri, 21 Jul 2017 12:32:21 +0000 (13:32 +0100)
committerDaniel Vetter <daniel.vetter@ffwll.ch>
Thu, 27 Jul 2017 07:38:44 +0000 (09:38 +0200)
commitc209ffad590ea89f7e81d8db770791c75d8dcd2e
tree37acce3360ee1b87d3e1789b39a8e54d4ece4da3
parentfed81e0013f70871cddaf8e9113da82188c1a0f2
drm/i915: Serialize per-engine resets against new requests

We rely on disabling the execlists (by stopping the tasklet) to prevent
new requests from submitting to the engine ELSP before we are ready.
However, we re-enable the engine before we call init_hw which gives
userspace the opportunity to subit a new request which is then
overwritten by init_hw -- but not before the HW may have started
executing. The subsequent out-of-order CSB is detected by our sanity
checks in intel_lrc_irq_handler().

Fixes: a4c99a4c1166 ("drm/i915: Add support for per engine reset recovery")
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Michel Thierry <michel.thierry@intel.com>
Cc: Mika Kuoppala <mika.kuoppala@linux.intel.com>
Reviewed-by: Michel Thierry <michel.thierry@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20170721123238.16428-3-chris@chris-wilson.co.uk
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
drivers/gpu/drm/i915/i915_drv.c