mirror of
https://github.com/torvalds/linux.git
synced 2026-05-26 08:02:27 +02:00
drm/i915/gt: Ignore repeated attempts to suspend request flow across reset
Before reseting the engine, we suspend the execution of the guilty request, so that we can continue execution with a new context while we slowly compress the captured error state for the guilty context. However, if the reset fails, we will promptly attempt to reset the same request again, and discover the ongoing capture. Ignore the second attempt to suspend and capture the same request. Closes: https://gitlab.freedesktop.org/drm/intel/-/issues/1168 Fixes:32ff621fd7("drm/i915/gt: Allow temporary suspension of inflight requests") Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Cc: <stable@vger.kernel.org> # v5.7+ Reviewed-by: Mika Kuoppala <mika.kuoppala@linux.intel.com> Link: https://patchwork.freedesktop.org/patch/msgid/20201204151234.19729-1-chris@chris-wilson.co.uk (cherry picked from commitb969540500) Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
This commit is contained in:
parent
0e124e19ce
commit
5419d93ffd
|
|
@ -2788,6 +2788,9 @@ static void __execlists_hold(struct i915_request *rq)
|
|||
static bool execlists_hold(struct intel_engine_cs *engine,
|
||||
struct i915_request *rq)
|
||||
{
|
||||
if (i915_request_on_hold(rq))
|
||||
return false;
|
||||
|
||||
spin_lock_irq(&engine->active.lock);
|
||||
|
||||
if (i915_request_completed(rq)) { /* too late! */
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user