drm/i915: Lock the engine while dumping the active request
authorChris Wilson <chris@chris-wilson.co.uk>
Mon, 15 Jul 2019 08:09:28 +0000 (09:09 +0100)
committerChris Wilson <chris@chris-wilson.co.uk>
Tue, 16 Jul 2019 12:19:34 +0000 (13:19 +0100)
commitcfe7288c276e359eebf057699fe86c2f8af14224
tree1befcc2a23eaeea60d75b19087505f645b5ea8e1
parentbb80c9255770fa1ed54e889a6bee628bdd0f6762
drm/i915: Lock the engine while dumping the active request

We cannot let the request be retired and freed while we are trying to
dump it during error capture. It is not sufficient just to grab a
reference to the request, as during retirement we may free the ring
which we are also dumping. So take the engine lock to prevent retiring
and freeing of the request.

Reported-by: Alex Shumsky <alexthreed@gmail.com>
Fixes: 83c317832eb1 ("drm/i915: Dump the ringbuffer of the active request for debugging")
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Cc: Alex Shumsky <alexthreed@gmail.com>
Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20190715080946.15593-6-chris@chris-wilson.co.uk
drivers/gpu/drm/i915/gt/intel_engine_cs.c
drivers/gpu/drm/i915/i915_gpu_error.c