]> git.karo-electronics.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>
Fri, 16 Nov 2007 17:30:22 +0000 (09:30 -0800)
commit34f84ffa2b3fa5af7e2cd27d0569ded38786396a
treedd558a3475e3fca83096a2aac58bd279bf72b65e
parentbdef0ae05e53c9681bdb3367ca1d461e8c2277f5
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