mirror of
https://github.com/torvalds/linux.git
synced 2024-11-24 21:21:41 +00:00
USB: EHCI: add check for wakeup/suspend race
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@rowland.harvard.edu> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
0a56b4fa68
commit
b8efdafb40
@ -1095,6 +1095,14 @@ int ehci_suspend(struct usb_hcd *hcd, bool do_wakeup)
|
||||
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);
|
||||
|
Loading…
Reference in New Issue
Block a user