diff options
author | Alan Stern <stern@rowland.harvard.edu> | 2012-07-11 11:23:16 -0400 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2012-07-16 19:56:48 -0400 |
commit | 43fe3a99d9caf10b25f9c596e9854cdae30db418 (patch) | |
tree | 596812dcd61ba9cbffe0e837d53dd3a2232ad214 /drivers/usb/host/ehci.h | |
parent | c4f3476436f7452b97c8accb5dd7d53219a11a3f (diff) |
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.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/usb/host/ehci.h b/drivers/usb/host/ehci.h index 7de58fe52d5..da07d98f7d1 100644 --- a/drivers/usb/host/ehci.h +++ b/drivers/usb/host/ehci.h | |||
@@ -118,6 +118,7 @@ struct ehci_hcd { /* one per controller */ | |||
118 | bool need_rescan:1; | 118 | bool need_rescan:1; |
119 | bool intr_unlinking:1; | 119 | bool intr_unlinking:1; |
120 | bool async_unlinking:1; | 120 | bool async_unlinking:1; |
121 | bool shutdown:1; | ||
121 | struct ehci_qh *qh_scan_next; | 122 | struct ehci_qh *qh_scan_next; |
122 | 123 | ||
123 | /* async schedule support */ | 124 | /* async schedule support */ |