alistair23-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
..
buffer.c USB: Core: Fix minor coding style issues 2011-01-22 19:35:39 -08:00
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 USB: Do not pass negative length to snoop_urb() 2011-03-23 13:14:16 -07:00
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 usb: set ep_dev async suspend should be later than device_initialize 2011-01-22 18:36:42 -08:00
file.c USB: remove dead code from usb_deregister_dev() 2011-04-13 16:24:05 -07:00
generic.c USB: accept RNDIS configs if there's no alternative 2010-08-10 14:35:43 -07:00
hcd-pci.c Merge branch 'usb-next' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb-2.6 2011-03-16 15:04:26 -07:00
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
Kconfig kconfig: rename CONFIG_EMBEDDED to CONFIG_EXPERT 2011-01-20 17:02:05 -08:00
Makefile usb: makefile cleanup 2010-10-22 10:22:07 -07:00
message.c USB: additional regression fix for device removal 2011-07-07 13:29:33 -07:00
notify.c USB : correct comments in usb/core/notify.c 2008-02-01 14:34:44 -08:00
otg_whitelist.h USB: fix codingstyle issues in drivers/usb/core/*.h 2008-02-01 14:35:07 -08:00
quirks.c USB: Add quirk for Samsung Android phone modem 2011-02-17 10:30:24 -08:00
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: Add support for SuperSpeed isoc endpoints 2011-03-13 18:23:57 -07:00
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