From 7836e982d03ea4a87930a738acd7912226db2a9a Mon Sep 17 00:00:00 2001 From: Chris Wilson Date: Tue, 18 Feb 2020 16:21:42 +0000 Subject: [PATCH] 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: Chris Wilson Reviewed-by: Matthew Auld Link: https://patchwork.freedesktop.org/patch/msgid/20200218162150.1300405-4-chris@chris-wilson.co.uk --- drivers/gpu/drm/i915/gt/intel_engine_heartbeat.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/drm/i915/gt/intel_engine_heartbeat.c b/drivers/gpu/drm/i915/gt/intel_engine_heartbeat.c index 6c6fd185457c0..dd825718e4e55 100644 --- a/drivers/gpu/drm/i915/gt/intel_engine_heartbeat.c +++ b/drivers/gpu/drm/i915/gt/intel_engine_heartbeat.c @@ -180,7 +180,7 @@ int intel_engine_pulse(struct intel_engine_cs *engine) struct i915_sched_attr attr = { .priority = I915_PRIORITY_BARRIER }; struct intel_context *ce = engine->kernel_context; struct i915_request *rq; - int err = 0; + int err; if (!intel_engine_has_preemption(engine)) return -ENODEV; @@ -188,8 +188,10 @@ int intel_engine_pulse(struct intel_engine_cs *engine) if (!intel_engine_pm_get_if_awake(engine)) return 0; - if (mutex_lock_interruptible(&ce->timeline->mutex)) + if (mutex_lock_interruptible(&ce->timeline->mutex)) { + err = -EINTR; goto out_rpm; + } intel_context_enter(ce); rq = __i915_request_create(ce, GFP_NOWAIT | __GFP_NOWARN); @@ -204,6 +206,8 @@ int intel_engine_pulse(struct intel_engine_cs *engine) __i915_request_commit(rq); __i915_request_queue(rq, &attr); + GEM_BUG_ON(rq->sched.attr.priority < I915_PRIORITY_BARRIER); + err = 0; out_unlock: mutex_unlock(&ce->timeline->mutex); -- 2.39.5