]> git.kernelconcepts.de Git - karo-tx-linux.git/commit
USB: mutual exclusion for EHCI init and port resets
authorAlan Stern <stern@rowland.harvard.edu>
Fri, 12 Oct 2007 22:19:14 +0000 (15:19 -0700)
committerGreg Kroah-Hartman <gregkh@suse.de>
Wed, 21 Nov 2007 17:25:56 +0000 (09:25 -0800)
commit0afc57fe16f55c446f7d421f84e3c7cf0a938777
treedb7dcc2f8bea7e223f358c6a8cbc978e413e2341
parent12a245310134c88936581be7be9d08afc847120f
USB: mutual exclusion for EHCI init and port resets

patch 32fe01985aa2cb2562f6fc171e526e279abe10db in mainline.

This patch (as999) fixes a problem that sometimes shows up when host
controller driver modules are loaded in the wrong order.  If ehci-hcd
happens to initialize an EHCI controller while the companion OHCI or
UHCI controller is in the middle of a port reset, the reset can fail
and the companion may get very confused.  The patch adds an
rw-semaphore and uses it to keep EHCI initialization and port resets
mutually exclusive.

Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
Acked-by: David Brownell <david-b@pacbell.net>
Cc: David Miller <davem@davemloft.net>
Cc: Dely L Sy <dely.l.sy@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
drivers/usb/core/hcd.h
drivers/usb/core/hub.c
drivers/usb/host/ehci-hcd.c