android_kernel_xiaomi_sdm845/drivers/usb/storage
Alan Stern 2f67cd5b1d usb-storage: fix bugs in the disconnect pathway
This patch (as961) fixes a couple of bugs in the disconnect pathway of
usb-storage.

The first problem, which apparently has been around for a while
although nobody noticed it, shows up when an aborted command is still
pending when a disconnect occurs.  The SCSI error-handler will
continue to wait in command_abort() until the us->notify completion is
signalled.  Thus quiesce_and_remove_host() needs to signal it.

The second problem was introduced recently along with autosuspend
support.  Since usb_stor_scan_thread() now calls
usb_autopm_put_interface() before exiting, we can't simply leave the
scanning thread running after a disconnect; we must wait until the
thread exits.  This is solved by adding a new struct completion to the
private data structure.  Fortuitously, it allows the removal of the
rather clunky mechanism used in the past to insure that all threads
have finished before the module is unloaded.

Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
CC: Matthew Dharm <mdharm-usb@one-eyed-alien.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2007-08-22 14:27:52 -07:00
..
alauda.c [PATCH] USB Storage: add alauda support 2006-01-04 13:51:42 -08:00
alauda.h [PATCH] USB Storage: add alauda support 2006-01-04 13:51:42 -08:00
datafab.c [PATCH] remove many unneeded #includes of sched.h 2007-02-14 08:09:54 -08:00
datafab.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
debug.c [PATCH] USB: usb-storage: add debug entry for REPORT LUNS 2006-01-04 13:51:42 -08:00
debug.h Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
dpcm.c USB: drivers/usb/storage/dpcm.c whitespace cleanup 2007-07-19 17:46:08 -07:00
dpcm.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
freecom.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
freecom.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
initializers.c [PATCH] remove many unneeded #includes of sched.h 2007-02-14 08:09:54 -08:00
initializers.h USB Storage: add rio karma eject support 2006-09-27 11:58:54 -07:00
isd200.c [PATCH] USB: kzalloc() conversion for rest of drivers/usb 2006-03-20 14:49:59 -08:00
isd200.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
jumpshot.c [PATCH] remove many unneeded #includes of sched.h 2007-02-14 08:09:54 -08:00
jumpshot.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
karma.c USB Storage: add rio karma eject support 2006-09-27 11:58:54 -07:00
karma.h USB Storage: add rio karma eject support 2006-09-27 11:58:54 -07:00
Kconfig Fix several typos in drivers/ 2006-10-03 22:31:37 +02:00
libusual.c libusual: change block scope variable to function scope 2007-04-27 13:28:34 -07:00
Makefile USB Storage: add rio karma eject support 2006-09-27 11:58:54 -07:00
onetouch.c USB: storage: onetouch: clean up urb->status usage 2007-07-19 17:46:06 -07:00
onetouch.h [PATCH] USB Storage: add support for Maxtor One-Touch button 2005-09-08 16:22:55 -07:00
protocol.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
protocol.h [PATCH] USB: drivers/usb/storage/libusual 2006-01-04 13:48:31 -08:00
scsiglue.c usb-storage: implement autosuspend 2007-07-12 16:34:43 -07:00
scsiglue.h [PATCH] USB Storage: port reset on transport error 2005-06-27 14:44:03 -07:00
sddr09.c [PATCH] remove many unneeded #includes of sched.h 2007-02-14 08:09:54 -08:00
sddr09.h [PATCH] USB Storage: cleanups of sddr09 2006-01-04 13:51:41 -08:00
sddr55.c [PATCH] USB: kzalloc for storage 2006-03-20 14:49:52 -08:00
sddr55.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
shuttle_usbat.c [PATCH] remove many unneeded #includes of sched.h 2007-02-14 08:09:54 -08:00
shuttle_usbat.h [PATCH] USB: shuttle_usbat: Hardcode detection of HP CDRW devices 2006-06-21 15:04:10 -07:00
transport.c [PATCH] slab: remove SLAB_NOIO 2006-12-07 08:39:23 -08:00
transport.h [PATCH] USB: drivers/usb/storage/libusual 2006-01-04 13:48:31 -08:00
unusual_devs.h USB: NIKON D50 is an unusual device 2007-07-30 13:27:46 -07:00
usb.c usb-storage: fix bugs in the disconnect pathway 2007-08-22 14:27:52 -07:00
usb.h usb-storage: fix bugs in the disconnect pathway 2007-08-22 14:27:52 -07:00