]> www.infradead.org Git - users/hch/misc.git/commitdiff
drm/i915/guc: Skip communication warning on reset in progress
authorZhanjun Dong <zhanjun.dong@intel.com>
Mon, 29 Sep 2025 15:29:04 +0000 (11:29 -0400)
committerRodrigo Vivi <rodrigo.vivi@intel.com>
Mon, 13 Oct 2025 18:08:41 +0000 (14:08 -0400)
GuC IRQ and tasklet handler receive just single G2H message, and let other
messages to be received from next tasklet. During this chained tasklet
process, if reset process started, communication will be disabled.
Skip warning for this condition.

Fixes: 65dd4ed0f4e1 ("drm/i915/guc: Don't receive all G2H messages in irq handler")
Closes: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15018
Signed-off-by: Zhanjun Dong <zhanjun.dong@intel.com>
Reviewed-by: Vinay Belgaumkar <vinay.belgaumkar@intel.com>
Signed-off-by: Daniele Ceraolo Spurio <daniele.ceraolospurio@intel.com>
Link: https://lore.kernel.org/r/20250929152904.269776-1-zhanjun.dong@intel.com
(cherry picked from commit 604b5ee4a653a70979ce689dbd6a5d942eb016bf)
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
drivers/gpu/drm/i915/gt/uc/intel_guc_ct.c

index 3e7e5badcc2b5e34b42d462ff14e87130ce9ec34..2c651ec024ef5a48b9c127dd35bd9dc6f37aa6a4 100644 (file)
@@ -1325,9 +1325,16 @@ static int ct_receive(struct intel_guc_ct *ct)
 
 static void ct_try_receive_message(struct intel_guc_ct *ct)
 {
+       struct intel_guc *guc = ct_to_guc(ct);
        int ret;
 
-       if (GEM_WARN_ON(!ct->enabled))
+       if (!ct->enabled) {
+               GEM_WARN_ON(!guc_to_gt(guc)->uc.reset_in_progress);
+               return;
+       }
+
+       /* When interrupt disabled, message handling is not expected */
+       if (!guc->interrupts.enabled)
                return;
 
        ret = ct_receive(ct);