[PATCH] USB Storage: Force starget->scsi_level in usb-storage scsiglue.c
authorPaul Walmsley <paul@booyaka.com>
Wed, 21 Dec 2005 22:28:06 +0000 (14:28 -0800)
committerLinus Torvalds <torvalds@g5.osdl.org>
Wed, 21 Dec 2005 22:46:34 +0000 (14:46 -0800)
commit28120be5d6830cd7c7777d8bf570bdb20abef58a
treea7aecedc557ae1c5ae4b4d7fa21a1eed879c842e
parent23f9b317e0ba4fbc5fc9524275d0105fa87e2027
[PATCH] USB Storage: Force starget->scsi_level in usb-storage scsiglue.c

When the usb-storage module forces sdev->scsi_level to SCSI_2, it should
also force starget->scsi_level to the same value.  Otherwise, the SCSI
layer may attempt to issue SCSI-3 commands to the device, such as REPORT
LUNS, which it cannot handle.  This can prevent the device from working
with Linux.

The AMS Venus DS3 DS2316SU2S SATA-to-SATA+USB enclosure, based on the
Oxford Semiconductor OXU921S chip, requires this patch to function
correctly on Linux.  The enclosure reports a SCSI-3 SPC-2 command set
level, but does not correctly handle the REPORT LUNS SCSI command -
probably due to a bug in its firmware.

It seems likely that other USB storage enclosures with similar bugs will
also benefit from this patch.

Tony Lindgren <tony@atomide.com> collaborated in the development of this
patch.

Signed-off-by: Paul Walmsley <paul@booyaka.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
drivers/usb/storage/scsiglue.c