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