drm/i915/guc: Workaround reset G2H is received after schedule done G2H
authorMatthew Brost <matthew.brost@intel.com>
Thu, 9 Sep 2021 16:47:27 +0000 (09:47 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 25 Nov 2021 08:49:04 +0000 (09:49 +0100)
commit2a45b1c66ccc589699102ef95a12a719fa69c6b6
tree089b3dfb83a42aed33639da638748cf796597895
parentad583a961905f843c420279a8db230e2719f60d1
drm/i915/guc: Workaround reset G2H is received after schedule done G2H

commit 1ca36cff0166b0483fe3b99e711e9c800ebbfaa4 upstream.

If the context is reset as a result of the request cancellation the
context reset G2H is received after schedule disable done G2H which is
the wrong order. The schedule disable done G2H release the waiting
request cancellation code which resubmits the context. This races
with the context reset G2H which also wants to resubmit the context but
in this case it really should be a NOP as request cancellation code owns
the resubmit. Use some clever tricks of checking the context state to
seal this race until the GuC firmware is fixed.

v2:
 (Checkpatch)
  - Fix typos
v3:
 (Daniele)
  - State that is a bug in the GuC firmware

Fixes: 62eaf0ae217d ("drm/i915/guc: Support request cancellation")
Signed-off-by: Matthew Brost <matthew.brost@intel.com>
Cc: <stable@vger.kernel.org>
Reviewed-by: Daniele Ceraolo Spurio <daniele.ceraolospurio@intel.com>
Signed-off-by: John Harrison <John.C.Harrison@Intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20210909164744.31249-7-matthew.brost@intel.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c