linux/drivers/usb/core
Alan Stern ca5c485f55 USB: additional regression fix for device removal
Commit e534c5b831 (USB: fix regression
occurring during device removal) didn't go far enough.  It failed to
take into account that when a driver claims multiple interfaces, it may
release them all at the same time.  As a result, some interfaces can
get released before they are unregistered, and we deadlock trying to
acquire the bandwidth_mutex that we already own.

This patch (asl478) handles this case by setting the "unregistering"
flag on all the interfaces before removing any of them.

Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
Cc: stable <stable@kernel.org>
Tested-by: Éric Piel <eric.piel@tremplin-utc.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-07-07 13:29:33 -07:00
..
Kconfig
Makefile
buffer.c
config.c usb/ch9: use proper endianess for wBytesPerInterval 2011-05-02 16:42:51 -07:00
devices.c Merge 2.6.39-rc4 into usb-next 2011-04-19 05:50:38 -07:00
devio.c
driver.c Merge branch 'usb-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb-2.6 2011-06-28 11:15:17 -07:00
endpoint.c
file.c USB: remove dead code from usb_deregister_dev() 2011-04-13 16:24:05 -07:00
generic.c
hcd-pci.c
hcd.c USB: remove remaining usages of hcd->state from usbcore and fix regression 2011-05-19 16:34:04 -07:00
hub.c Merge branch 'for-usb-linus' of git+ssh://master.kernel.org/pub/scm/linux/kernel/git/sarah/xhci into usb-linus 2011-06-27 13:36:47 -07:00
inode.c usb: remove bad dput after dentry_unhash 2011-06-06 16:26:59 -07:00
message.c USB: additional regression fix for device removal 2011-07-07 13:29:33 -07:00
notify.c
otg_whitelist.h
quirks.c
sysfs.c usb: core: Change usb_create_sysfs_intf_files()' return type to void 2011-04-29 17:24:38 -07:00
urb.c
usb.c usb: core: Change usb_create_sysfs_intf_files()' return type to void 2011-04-29 17:24:38 -07:00
usb.h usb: core: Change usb_create_sysfs_intf_files()' return type to void 2011-04-29 17:24:38 -07:00