OSDN Git Service

drm/i915/gt: Always force restore freshly pinned contexts
authorChris Wilson <chris@chris-wilson.co.uk>
Tue, 7 Jan 2020 17:28:42 +0000 (17:28 +0000)
committerChris Wilson <chris@chris-wilson.co.uk>
Tue, 7 Jan 2020 22:31:45 +0000 (22:31 +0000)
It is highly unlikely, but still conceivable, that we submit a context
with the same GGTT address as last active on the HW. In this case, with
a matching LRCA, the HW would not restore the new context image causing
a potential violation of our context isolation.

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/20200107172842.3315449-1-chris@chris-wilson.co.uk
drivers/gpu/drm/i915/gt/intel_lrc.c

index 5f171e4..bd74b76 100644 (file)
@@ -2583,7 +2583,7 @@ __execlists_context_pin(struct intel_context *ce,
                goto unpin_active;
        }
 
-       ce->lrc_desc = lrc_descriptor(ce, engine);
+       ce->lrc_desc = lrc_descriptor(ce, engine) | CTX_DESC_FORCE_RESTORE;
        ce->lrc_reg_state = vaddr + LRC_STATE_PN * PAGE_SIZE;
        __execlists_update_reg_state(ce, engine);