summaryrefslogtreecommitdiffstats
path: root/drivers/usb/host/ehci.h
diff options
context:
space:
mode:
authorAlan Stern <stern@rowland.harvard.edu>2012-07-11 17:23:16 +0200
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2012-07-17 01:56:48 +0200
commit43fe3a99d9caf10b25f9c596e9854cdae30db418 (patch)
tree596812dcd61ba9cbffe0e837d53dd3a2232ad214 /drivers/usb/host/ehci.h
parentUSB: EHCI: fix up locking (diff)
downloadlinux-43fe3a99d9caf10b25f9c596e9854cdae30db418.tar.xz
linux-43fe3a99d9caf10b25f9c596e9854cdae30db418.zip
USB: EHCI: resolve some unlikely races
This patch (as1589) resolves some unlikely races involving system shutdown or controller death in ehci-hcd: Shutdown races with both root-hub resume and controller resume. Controller death races with root-hub suspend. A new bitflag is added to indicate that the controller has been shut down (whether for system shutdown or because it died). Tests are added in the suspend and resume pathways to avoid reactivating the controller after any sort of shutdown. Signed-off-by: Alan Stern <stern@rowland.harvard.edu> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/usb/host/ehci.h')
-rw-r--r--drivers/usb/host/ehci.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/usb/host/ehci.h b/drivers/usb/host/ehci.h
index 7de58fe52d51..da07d98f7d1d 100644
--- a/drivers/usb/host/ehci.h
+++ b/drivers/usb/host/ehci.h
@@ -118,6 +118,7 @@ struct ehci_hcd { /* one per controller */
bool need_rescan:1;
bool intr_unlinking:1;
bool async_unlinking:1;
+ bool shutdown:1;
struct ehci_qh *qh_scan_next;
/* async schedule support */