drm/i915/execlists: Ensure the context is reloaded after a GPU reset
authorChris Wilson <chris@chris-wilson.co.uk>
Thu, 12 Sep 2019 09:29:33 +0000 (10:29 +0100)
committerChris Wilson <chris@chris-wilson.co.uk>
Thu, 12 Sep 2019 11:59:46 +0000 (12:59 +0100)
After we manipulate the context to allow replay after a GPU reset, force
that context to be reloaded. This should be a layer of paranoia, for if
the GPU was reset, the context will no longer be resident!

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Mika Kuoppala <mika.kuoppala@linux.intel.com>
Acked-by: Mika Kuoppala <mika.kuoppala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20190912092933.4729-2-chris@chris-wilson.co.uk
drivers/gpu/drm/i915/gt/intel_lrc.c

index dbc90da2341abf47a2951e98f90e2bef34b19e42..47d766ccea71e7ef8f81859dd58f33929a6925fc 100644 (file)
@@ -2445,6 +2445,7 @@ out_replay:
        intel_ring_update_space(ce->ring);
        __execlists_reset_reg_state(ce, engine);
        __execlists_update_reg_state(ce, engine);
+       ce->lrc_desc |= CTX_DESC_FORCE_RESTORE; /* paranoid: GPU was reset! */
        mutex_release(&ce->pin_mutex.dep_map, 0, _THIS_IP_);
 
 unwind: