android_kernel_motorola_sm6225/drivers/usb/storage
Hans de Goede 61c09ce510 uas: Properly complete inflight commands on bus-reset or disconnect
Before this commit the uas driver would keep track of scsi commands which still
need to have some urbs submitted to the device, and complete this with an
ABORT result code on bus-reset or disconnect, but in flight scsi commands
which have all their urbs submitted, and thus are not part of the work list,
would never get their done callback called.

The problem is killed sense urbs don't have any tag info, so it is impossible
to tell which scsi cmd they belong to, so merely making sure all the urbs
have completed one way or the other is not enough.

This commit fixes this by changing the work list to an inflight list, which
keeps tracks of all inflight scsi cmnds, using the IS_IN_WORK_LIST flag to
determine if actual work needs to be done in uas_do_work(), and by moving
marking all inflight scsi commands as aborted and moving them to the dead list
on bus-reset or disconnect.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Sarah Sharp <sarah.a.sharp@linux.intel.com>
2014-03-04 15:38:22 -08:00
..
alauda.c usb: storage: alauda: initialize variables directly 2013-05-16 17:48:28 -07:00
cypress_atacb.c
datafab.c
debug.c
debug.h
ene_ub6250.c
freecom.c
initializers.c
initializers.h
isd200.c
jumpshot.c
karma.c
Kconfig uas: Honor no-uas quirk set in usb-storage's quirks module parameter 2014-03-04 15:38:17 -08:00
Makefile
onetouch.c usb: delete non-required instances of include <linux/init.h> 2014-01-08 15:01:39 -08:00
option_ms.c
option_ms.h
protocol.c USB: storage: fix compile warning 2013-12-09 23:45:39 -08:00
protocol.h
realtek_cr.c USB: usb-stor: realtek_cr: Fix compile error 2013-05-16 17:28:27 -07:00
scsiglue.c usb-storage: enable multi-LUN scanning when needed 2014-02-04 12:59:15 -08:00
scsiglue.h
sddr09.c usb: storage: sddr09: initialize variables directly 2013-05-16 17:48:28 -07:00
sddr55.c
shuttle_usbat.c
sierra_ms.c
sierra_ms.h
transport.c
transport.h
uas-detect.h uas: Verify endpoint descriptors from uas_use_uas_driver() 2014-03-04 15:38:19 -08:00
uas.c uas: Properly complete inflight commands on bus-reset or disconnect 2014-03-04 15:38:22 -08:00
unusual_alauda.h
unusual_cypress.h usb-storage: restrict bcdDevice range for Super Top in Cypress ATACB 2014-02-04 12:59:14 -08:00
unusual_datafab.h
unusual_devs.h usb-storage: Don't bind to uas devices if the uas driver is enabled 2014-03-04 15:38:16 -08:00
unusual_ene_ub6250.h
unusual_freecom.h
unusual_isd200.h
unusual_jumpshot.h
unusual_karma.h
unusual_onetouch.h
unusual_realtek.h
unusual_sddr09.h
unusual_sddr55.h
unusual_uas.h uas: Add the posibilty to blacklist uas devices from using the uas driver 2014-03-04 15:38:16 -08:00
unusual_usbat.h
usb.c usb-storage: Modify and export adjust_quirks so that it can be used by uas 2014-03-04 15:38:17 -08:00
usb.h usb-storage: Modify and export adjust_quirks so that it can be used by uas 2014-03-04 15:38:17 -08:00
usual-tables.c