linux/drivers/usb/core
Ming Lei 4d769def24 usb: forbid memory allocation with I/O during bus reset
If one storage interface or usb network interface(iSCSI case) exists in
current configuration, memory allocation with GFP_KERNEL during
usb_device_reset() might trigger I/O transfer on the storage interface
itself and cause deadlock because the 'us->dev_mutex' is held in
.pre_reset() and the storage interface can't do I/O transfer when the
reset is triggered by other interface, or the error handling can't be
completed if the reset is triggered by the storage itself (error
handling path).

Signed-off-by: Ming Lei <ming.lei@canonical.com>
Cc: "David S. Miller" <davem@davemloft.net>
Cc: Eric Dumazet <eric.dumazet@gmail.com>
Cc: David Decotigny <david.decotigny@google.com>
Cc: Tom Herbert <therbert@google.com>
Cc: Ingo Molnar <mingo@elte.hu>
Cc: Jens Axboe <axboe@kernel.dk>
Cc: Minchan Kim <minchan@kernel.org>
Cc: Alan Stern <stern@rowland.harvard.edu>
Cc: Oliver Neukum <oneukum@suse.de>
Reviewed-by: Jiri Kosina <jkosina@suse.cz>
Cc: Mel Gorman <mel@csn.ul.ie>
Cc: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
Cc: Michal Hocko <mhocko@suse.cz>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: "Rafael J. Wysocki" <rjw@sisk.pl>
Cc: Greg KH <greg@kroah.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2013-02-23 17:50:16 -08:00
..
buffer.c USB: Core: Fix minor coding style issues 2011-01-22 19:35:39 -08:00
config.c usb: Fail a get config when the port is powered off. 2012-09-10 13:04:01 -07:00
devices.c usb/core: consider link speed while looking at bMaxPower 2013-01-11 16:16:01 -08:00
devio.c drivers/usb/core: using strlcpy instead of strncpy 2013-02-06 11:38:13 -08:00
driver.c Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2012-12-13 12:00:02 -08:00
endpoint.c usb/endpoint: Set release callback in the struct device_type instead of in the device itself directly 2012-08-20 14:38:08 -07:00
file.c USB: rename the usb misc class from "usb" to "usbmisc" 2012-06-13 15:37:13 -07:00
generic.c usb/core: consider link speed while looking at bMaxPower 2013-01-11 16:16:01 -08:00
hcd-pci.c USB: add NO_D3_DURING_SLEEP flag and revert 151b612847 2012-06-13 13:11:39 -07:00
hcd.c Merge usb-linus branch into usb-next 2013-02-08 12:03:11 -08:00
hub.c usb: forbid memory allocation with I/O during bus reset 2013-02-23 17:50:16 -08:00
hub.h usb: add usb port auto power off mechanism 2013-01-25 10:14:20 -08:00
Kconfig USB: remove CONFIG_EXPERIMENTAL dependancies 2012-09-17 23:00:15 -07:00
Makefile usb: Add driver/usb/core/(port.c,hub.h) files 2013-01-18 15:49:00 -08:00
message.c usb/core: consider link speed while looking at bMaxPower 2013-01-11 16:16:01 -08: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 Revert "usb: Register usb port's acpi power resources" 2013-01-29 07:33:07 -08:00
quirks.c USB: Add device quirk for Microsoft VX700 webcam 2013-01-11 16:01:07 -08:00
sysfs.c usb/core: consider link speed while looking at bMaxPower 2013-01-11 16:16:01 -08:00
urb.c USB: report submission of active URBs 2012-11-11 18:10:46 -08:00
usb-acpi.c Revert "usb: Register usb port's acpi power resources" 2013-01-29 07:33:07 -08:00
usb.c usb-core: remove CONFIG_HOTPLUG ifdefs 2012-11-21 13:27:16 -08:00
usb.h Revert "usb: Register usb port's acpi power resources" 2013-01-29 07:33:07 -08:00