linux/drivers/usb/storage
Sarah Sharp 9eb445410d UAS: Use unique tags on non-streams devices.
UAS can work with either USB 3.0 devices that support bulk streams, or
USB 2.0 devices that do not support bulk streams.  When we're working
with a non-streams device, we need to be able to uniquely identify a
SCSI command with a tag in the IU.  Devices will barf and abort all
queued commands if they find a duplicate tag.

uas_queuecommand_lck() sets cmdinfo->stream to zero if the device
doesn't support streams, which is later passed into uas_alloc_cmd_urb()
as the variable stream.  This means the UAS driver was setting the tag
in all commands to zero for non-stream devices.  So the UAS driver won't
currently work with USB 2.0 devices.

Use the SCSI command tag instead of the stream ID for the command IU
tag.  We have to add one to the SCSI command tag because SCSI tags are
zero-based, but stream IDs are one-based, and the command tag must match
the stream ID that we're queueing the data IUs for.  Untagged SCSI
commands use stream ID 1.

Signed-off-by: Sarah Sharp <sarah.a.sharp@linux.intel.com>
Cc: Matthew Wilcox <willy@linux.intel.com>
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
2011-12-22 10:14:48 +01:00
..
alauda.c
cypress_atacb.c
datafab.c
debug.c
debug.h
ene_ub6250.c USB: storage: ene_ub6250: fix compile warnings 2011-11-15 10:06:16 -08:00
freecom.c
initializers.c
initializers.h
isd200.c
jumpshot.c
karma.c
Kconfig usb-storage: fix realtek cr configuration 2011-09-18 01:33:07 -07:00
libusual.c
Makefile
onetouch.c
option_ms.c usb: Add module.h to drivers/usb consumers who really use it. 2011-10-31 19:31:25 -04:00
option_ms.h
protocol.c usb-storage: Accept 8020i-protocol commands longer than 12 bytes 2011-11-14 17:05:03 -08:00
protocol.h
realtek_cr.c Merge branch 'usb-next' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb 2011-10-25 12:23:15 +02:00
scsiglue.c
scsiglue.h
sddr09.c
sddr55.c
shuttle_usbat.c
sierra_ms.c usb: Add module.h to drivers/usb consumers who really use it. 2011-10-31 19:31:25 -04:00
sierra_ms.h
transport.c usb: Add export.h for EXPORT_SYMBOL/THIS_MODULE where needed 2011-10-31 19:31:25 -04:00
transport.h
uas.c UAS: Use unique tags on non-streams devices. 2011-12-22 10:14:48 +01:00
unusual_alauda.h
unusual_cypress.h
unusual_datafab.h
unusual_devs.h USB: usb-storage: unusual_devs entry for ARM V2M motherboard. 2011-08-08 12:34:46 -07: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_usbat.h
usb.c usb_storage: Don't freeze in usb-stor-scan 2011-08-22 15:21:15 -07:00
usb.h
usual-tables.c