drm/i915/guc: Replace preempt_client lookup with engine->preempt_context
authorChris Wilson <chris@chris-wilson.co.uk>
Mon, 8 Apr 2019 09:17:14 +0000 (10:17 +0100)
committerChris Wilson <chris@chris-wilson.co.uk>
Tue, 9 Apr 2019 08:58:22 +0000 (09:58 +0100)
Circumvent the dance we currently perform to find the preempt_client and
lookup its HW context for this engine, as we know we have already pinned
the preempt_context on the engine.

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/20190408091728.20207-15-chris@chris-wilson.co.uk
drivers/gpu/drm/i915/intel_guc_submission.c

index 42fcd622d7a33d3f66271b46ca824d66bcd02e05..dea87253d1415719e8db5bbc7f77acd2664eaf07 100644 (file)
@@ -567,7 +567,7 @@ static void inject_preempt_context(struct work_struct *work)
                                             preempt_work[engine->id]);
        struct intel_guc_client *client = guc->preempt_client;
        struct guc_stage_desc *stage_desc = __get_stage_desc(client);
-       struct intel_context *ce = intel_context_lookup(client->owner, engine);
+       struct intel_context *ce = engine->preempt_context;
        u32 data[7];
 
        if (!ce->ring->emit) { /* recreate upon load/resume */