hcd-pci.c in usbcore contains a check for wakeup requests racing with controller suspend. This check is going to be moved out of usbcore and into the individual controller drivers, where it can apply to all platforms, not just PCI. This patch adds the check to ehci-hcd. Signed-off-by: Alan Stern <stern@xxxxxxxxxxxxxxxxxxx> --- [as1729] drivers/usb/host/ehci-hcd.c | 8 ++++++++ 1 file changed, 8 insertions(+) Index: usb-3.12/drivers/usb/host/ehci-hcd.c =================================================================== --- usb-3.12.orig/drivers/usb/host/ehci-hcd.c +++ usb-3.12/drivers/usb/host/ehci-hcd.c @@ -1095,6 +1095,14 @@ int ehci_suspend(struct usb_hcd *hcd, bo clear_bit(HCD_FLAG_HW_ACCESSIBLE, &hcd->flags); spin_unlock_irq(&ehci->lock); + synchronize_irq(hcd->irq); + + /* Check for race with a wakeup request */ + if (do_wakeup && HCD_WAKEUP_PENDING(hcd)) { + ehci_resume(hcd, false); + return -EBUSY; + } + return 0; } EXPORT_SYMBOL_GPL(ehci_suspend); -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html