aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/i915/i915_request.h
diff options
context:
space:
mode:
authorChris Wilson <chris@chris-wilson.co.uk>2019-09-23 12:00:55 +0100
committerChris Wilson <chris@chris-wilson.co.uk>2019-09-23 16:21:37 +0100
commitc0bb487dc19fc45dbeede7dcf8f513df51a3cd33 (patch)
tree9f23871f9b660fa60565c7aa1d1089dc9a5e8d85 /drivers/gpu/drm/i915/i915_request.h
parentdrm/i915/execlists: Drop redundant list_del_init(&rq->sched.link) (diff)
downloadlinux-dev-c0bb487dc19fc45dbeede7dcf8f513df51a3cd33.tar.xz
linux-dev-c0bb487dc19fc45dbeede7dcf8f513df51a3cd33.zip
drm/i915: Only enqueue already completed requests
If we are asked to submit a completed request, just move it onto the active-list without modifying it's payload. If we try to emit the modified payload of a completed request, we risk racing with the ring->head update during retirement which may advance the head past our breadcrumb and so we generate a warning for the emission being behind the RING_HEAD. v2: Commentary for the sneaky, shared responsibility between functions. v3: Spelling mistakes and bonus assertion Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com> Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com> Link: https://patchwork.freedesktop.org/patch/msgid/20190923110056.15176-3-chris@chris-wilson.co.uk
Diffstat (limited to 'drivers/gpu/drm/i915/i915_request.h')
-rw-r--r--drivers/gpu/drm/i915/i915_request.h2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/gpu/drm/i915/i915_request.h b/drivers/gpu/drm/i915/i915_request.h
index b18f49528ded..ec5bb4c2e5ae 100644
--- a/drivers/gpu/drm/i915/i915_request.h
+++ b/drivers/gpu/drm/i915/i915_request.h
@@ -292,7 +292,7 @@ int i915_request_await_execution(struct i915_request *rq,
void i915_request_add(struct i915_request *rq);
-void __i915_request_submit(struct i915_request *request);
+bool __i915_request_submit(struct i915_request *request);
void i915_request_submit(struct i915_request *request);
void i915_request_skip(struct i915_request *request, int error);