summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/i915/i915_guc_submission.c
diff options
context:
space:
mode:
authorMichał Winiarski2017-05-23 12:23:59 +0200
committerChris Wilson2017-05-23 12:54:06 +0200
commitf63078abff0d2927c2f58f22b1082520def70865 (patch)
treea63f79a4ea37d078894cd540985a49ef5db3c543 /drivers/gpu/drm/i915/i915_guc_submission.c
parentdrm/i915: Remove misleading comment in request_alloc (diff)
downloadkernel-qcow2-linux-f63078abff0d2927c2f58f22b1082520def70865.tar.gz
kernel-qcow2-linux-f63078abff0d2927c2f58f22b1082520def70865.tar.xz
kernel-qcow2-linux-f63078abff0d2927c2f58f22b1082520def70865.zip
drm/i915/guc: Skip port assign on first iteration of GuC dequeue
If port[0] is occupied and we're trying to dequeue request from different context, we will inevitably hit BUG_ON in port_assign. Let's skip it - similar to what we're doing in execlists counterpart. Fixes: 77f0d0e925e8a0 ("drm/i915/execlists: Pack the count into the low bits of the port.request") Cc: Chris Wilson <chris@chris-wilson.co.uk> Cc: Michał Wajdeczko <michal.wajdeczko@intel.com> Cc: Mika Kuoppala <mika.kuoppala@intel.com> Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com> Signed-off-by: Michał Winiarski <michal.winiarski@intel.com> Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk> Link: http://patchwork.freedesktop.org/patch/msgid/20170523102400.9614-2-michal.winiarski@intel.com Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Diffstat (limited to 'drivers/gpu/drm/i915/i915_guc_submission.c')
-rw-r--r--drivers/gpu/drm/i915/i915_guc_submission.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/gpu/drm/i915/i915_guc_submission.c b/drivers/gpu/drm/i915/i915_guc_submission.c
index 777f48e9bb33..e6e0c6ef1084 100644
--- a/drivers/gpu/drm/i915/i915_guc_submission.c
+++ b/drivers/gpu/drm/i915/i915_guc_submission.c
@@ -681,7 +681,8 @@ static bool i915_guc_dequeue(struct intel_engine_cs *engine)
goto done;
}
- port_assign(port, last);
+ if (submit)
+ port_assign(port, last);
port++;
}