drm/i915: Allow interrupts when taking the timeline->mutex

Before we commit ourselves to writing commands into the
ringbuffer and submitting the request, allow signals to interrupt
acquisition of the timeline mutex. We allow ourselves to be interrupted
at any time later if we need to block for space in the ring, anyway.

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/20190610103610.19883-1-chris@chris-wilson.co.uk
This commit is contained in:
Chris Wilson
2019-06-10 11:36:10 +01:00
parent f398bbde9e
commit f4d57d838c
2 changed files with 7 additions and 3 deletions

View File

@@ -784,8 +784,11 @@ struct i915_request *
i915_request_create(struct intel_context *ce)
{
struct i915_request *rq;
int err;
intel_context_timeline_lock(ce);
err = intel_context_timeline_lock(ce);
if (err)
return ERR_PTR(err);
/* Move our oldest request to the slab-cache (if not in use!) */
rq = list_first_entry(&ce->ring->request_list, typeof(*rq), ring_link);