Message ID | 20250609020223.269407-5-superm1@kernel.org |
---|---|
State | New |
Headers | show |
Series | [1/4] PCI: Don't show errors on inaccessible PCI devices | expand |
On 9.6.2025 4.58, Mario Limonciello wrote: > From: Mario Limonciello <mario.limonciello@amd.com> > > When a USB4 dock is unplugged from a system it won't respond to ring > events. The PCI core handles the surprise removal event and notifies > all PCI drivers. The XHCI PCI driver sets a flag that the device is > being removed, and when the device stops responding a flag is also > added to indicate it's dying. > > When that flag is set don't bother to show warnings about a missing > controller. > > Signed-off-by: Mario Limonciello <mario.limonciello@amd.com> Acked-by: Mathias Nyman <mathias.nyman@linux.intel.com>
diff --git a/drivers/usb/host/xhci.c b/drivers/usb/host/xhci.c index 4e6dbd2375c3f..86d4bcc5faaf0 100644 --- a/drivers/usb/host/xhci.c +++ b/drivers/usb/host/xhci.c @@ -144,7 +144,8 @@ int xhci_halt(struct xhci_hcd *xhci) ret = xhci_handshake(&xhci->op_regs->status, STS_HALT, STS_HALT, XHCI_MAX_HALT_USEC); if (ret) { - xhci_warn(xhci, "Host halt failed, %d\n", ret); + if (!(xhci->xhc_state & XHCI_STATE_DYING)) + xhci_warn(xhci, "Host halt failed, %d\n", ret); return ret; } @@ -203,7 +204,8 @@ int xhci_reset(struct xhci_hcd *xhci, u64 timeout_us) state = readl(&xhci->op_regs->status); if (state == ~(u32)0) { - xhci_warn(xhci, "Host not accessible, reset failed.\n"); + if (!(xhci->xhc_state & XHCI_STATE_DYING)) + xhci_warn(xhci, "Host not accessible, reset failed.\n"); return -ENODEV; }