linux/drivers/usb/core
Joe Lawrence c605f3cdff usb: hub: take hub->hdev reference when processing from eventlist
During surprise device hotplug removal tests, it was observed that
hub_events may try to call usb_lock_device on a device that has already
been freed. Protect the usb_device by taking out a reference (under the
hub_event_lock) when hub_events pulls it off the list, returning the
reference after hub_events is finished using it.

Signed-off-by: Joe Lawrence <joe.lawrence@stratus.com>
Suggested-by: David Bulkow <david.bulkow@stratus.com> for using kref
Suggested-by: Alan Stern <stern@rowland.harvard.edu> for placement
Acked-by: Alan Stern <stern@rowland.harvard.edu>
Cc: stable <stable@vger.kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2014-09-10 13:32:35 -07:00
..
buffer.c USB: core: correct spelling mistakes in comments and warning 2014-01-07 16:17:40 -08:00
config.c usb-core bInterval quirk 2014-08-01 15:47:05 -07:00
devices.c Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs 2013-02-26 20:16:07 -08:00
devio.c USB: devio: fix issue with log flooding 2014-08-01 16:01:46 -07:00
driver.c USB: shutdown all URBs after controller death 2014-07-17 16:59:27 -07:00
endpoint.c USB: core: be specific about attribute permissions 2013-08-25 15:12:03 -07:00
file.c Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs 2013-11-13 15:34:18 +09:00
generic.c staging: usbip: convert usbip-host driver to usb_device_driver 2014-02-07 10:54:30 -08:00
hcd-pci.c USB: core: hcd-pci: free IRQ before disabling PCI device when shutting down 2014-07-22 16:30:58 -07:00
hcd.c usb-core: Remove Fix mes in file hcd.c 2014-07-18 16:18:11 -07:00
hub.c usb: hub: take hub->hdev reference when processing from eventlist 2014-09-10 13:32:35 -07:00
hub.h usb: force warm reset to break link re-connect livelock 2014-07-09 15:43:12 -07:00
Kconfig usb: common: rename phy-fsm-usb.c to usb-otg-fsm.c 2014-05-27 15:29:44 -07:00
Makefile USB: core: remove CONFIG_USB_DEBUG usage 2013-12-21 16:01:00 -08:00
message.c Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2014-04-02 16:23:38 -07:00
notify.c usb: Add export.h for EXPORT_SYMBOL/THIS_MODULE where needed 2011-10-31 19:31:25 -04:00
otg_whitelist.h
port.c usb: force warm reset to break link re-connect livelock 2014-07-09 15:43:12 -07:00
quirks.c usb-core bInterval quirk 2014-08-01 15:47:05 -07:00
sysfs.c USB: core: correct spelling mistakes in comments and warning 2014-01-07 16:17:40 -08:00
urb.c usb: core: allow zero packet flag for interrupt urbs 2014-07-22 16:30:58 -07:00
usb-acpi.c usb: find internal hub tier mismatch via acpi 2014-05-27 16:38:52 -07:00
usb.c USB: Add EXPORT_SYMBOL for usb_alloc_dev 2014-07-17 17:11:09 -07:00
usb.h usb: hub_handle_remote_wakeup() depends on CONFIG_PM_RUNTIME=y 2014-05-27 16:51:51 -07:00