drm/i915: Don't dereference request if it may have been retired when printing
authorChris Wilson <chris@chris-wilson.co.uk>
Tue, 18 Jun 2019 16:19:51 +0000 (17:19 +0100)
committerChris Wilson <chris@chris-wilson.co.uk>
Tue, 18 Jun 2019 17:14:43 +0000 (18:14 +0100)
commiteca153603f2f020e15d071918e0daf1d56c17d29
tree2419428db7c5390302d05648ad8b92e60e2a8032
parent1422768fa2600442bfc4be4b1fe112bf9d6bb5cf
drm/i915: Don't dereference request if it may have been retired when printing

This has caught me out on countless occasions, when we retrieve a pointer
from the submission/execlists backend, it does not carry a reference to
the context or ring. Those are only pinned while the request is active,
so if we see the request is already completed, it may be in the process
of being retired and those pointers defunct.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=110938
Fixes: 3a068721a973 ("drm/i915: Show ring->start for the ELSP context/request queue")
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20190618161951.28820-2-chris@chris-wilson.co.uk
drivers/gpu/drm/i915/gt/intel_engine_cs.c