On 28-08-2026 03:25, Andi Shyti wrote:
Hi Arvind,

@@ -1062,7 +1062,7 @@ static int __guc_ct_send_locked(struct xe_guc_ct *ct, 
const u32 *action,
        xe_gt_assert(gt, g2h_len || !num_g2h);
        lockdep_assert_held(&ct->lock);
- if (xe_device_wedged(ct_to_xe(ct))) {
+       if (xe_device_io_blocked(ct_to_xe(ct))) {
                ret = -ENOTRECOVERABLE;
                goto out;
        }
There is another place in this function where xe_device_wedged is
used.


Thanks for the review.
The later xe_device_wedged() check is intentional, as it determines the error returned to the caller. A permanent device wedge should return -ENOTRECOVERABLE, whereas a request canceled during AER recovery should return -ECANCELED.

For that reason, this check should remain as xe_device_wedged().


...

@@ -20,14 +19,15 @@ static void prepare_device_for_reset(struct pci_dev *pdev)
        struct xe_gt *gt;
        u8 id;
+
Please remove this blank line.


Noted.

Thankyou,
Arvind


Thanks,
Andi

        /*
-        * Wedge the device to prevent userspace access but do not send the 
uevent.
-        * xe_device_wedged_fini() releases runtime pm if wedged flag is set, 
so acquire a runtime
-        * pm reference to avoid underflow.
+        * Block device access while PCI error recovery is in progress.
+        *
+        * The old runtime PM reference balanced xe_device_wedged_fini() while

Reply via email to