Commit fbcb52db authored by Chris Wilson's avatar Chris Wilson

drm/i915/gt: Fix up missing error propagation for heartbeat pulses

Just missed setting err along an interruptible error path for the
intel_engine_pulse().
Signed-off-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: default avatarMatthew Auld <matthew.auld@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20200218162150.1300405-4-chris@chris-wilson.co.uk
parent 06289949
...@@ -180,7 +180,7 @@ int intel_engine_pulse(struct intel_engine_cs *engine) ...@@ -180,7 +180,7 @@ int intel_engine_pulse(struct intel_engine_cs *engine)
struct i915_sched_attr attr = { .priority = I915_PRIORITY_BARRIER }; struct i915_sched_attr attr = { .priority = I915_PRIORITY_BARRIER };
struct intel_context *ce = engine->kernel_context; struct intel_context *ce = engine->kernel_context;
struct i915_request *rq; struct i915_request *rq;
int err = 0; int err;
if (!intel_engine_has_preemption(engine)) if (!intel_engine_has_preemption(engine))
return -ENODEV; return -ENODEV;
...@@ -188,8 +188,10 @@ int intel_engine_pulse(struct intel_engine_cs *engine) ...@@ -188,8 +188,10 @@ int intel_engine_pulse(struct intel_engine_cs *engine)
if (!intel_engine_pm_get_if_awake(engine)) if (!intel_engine_pm_get_if_awake(engine))
return 0; return 0;
if (mutex_lock_interruptible(&ce->timeline->mutex)) if (mutex_lock_interruptible(&ce->timeline->mutex)) {
err = -EINTR;
goto out_rpm; goto out_rpm;
}
intel_context_enter(ce); intel_context_enter(ce);
rq = __i915_request_create(ce, GFP_NOWAIT | __GFP_NOWARN); rq = __i915_request_create(ce, GFP_NOWAIT | __GFP_NOWARN);
...@@ -204,6 +206,8 @@ int intel_engine_pulse(struct intel_engine_cs *engine) ...@@ -204,6 +206,8 @@ int intel_engine_pulse(struct intel_engine_cs *engine)
__i915_request_commit(rq); __i915_request_commit(rq);
__i915_request_queue(rq, &attr); __i915_request_queue(rq, &attr);
GEM_BUG_ON(rq->sched.attr.priority < I915_PRIORITY_BARRIER);
err = 0;
out_unlock: out_unlock:
mutex_unlock(&ce->timeline->mutex); mutex_unlock(&ce->timeline->mutex);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment