Thread (4 messages) 4 messages, 3 authors, 25d ago

Re: [PATCH] usb: pci-quirks: abort xHCI handoff if MMIO is inaccessible

flat view

From: Lukas Wunner <lukas@wunner.de>
Date: 2026-09-13 12:53:33
Also in: lkml, stable

On Mon, Sep 07, 2026 at 12:26:14AM +0800, Haowen Bai wrote:
quoted hunk ↗ jump to hunk
+++ b/drivers/usb/host/pci-quirks.c
@@ -1026,15 +1026,22 @@ static void quirk_usb_disable_ehci(struct pci_dev *pdev)
  * Returns 0 when the mask bits have the value done.
  * Returns -ETIMEDOUT if this condition is not true after
  * wait_usec microseconds have passed.
+ * Returns -ENODEV if the register reads as all-ones (hardware removed).
  */
 static int handshake(void __iomem *ptr, u32 mask, u32 done,
 		int wait_usec, int delay_usec)
 {
 	u32	result;
+	int	ret;
 
-	return readl_poll_timeout_atomic(ptr, result,
-					 ((result & mask) == done),
-					 delay_usec, wait_usec);
+	ret = readl_poll_timeout_atomic(ptr, result,
+					(result & mask) == done ||
+					result == U32_MAX,
+					delay_usec, wait_usec);
+	if (result == U32_MAX)
+		return -ENODEV;
+
+	return ret;
Nit:  Checking for PCI_POSSIBLE_ERROR(result) might be slightly clearer
than U32_MAX.

Thanks,

Lukas
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help