linux/drivers/usb/storage
Alan Stern a0bb108112 USB: usb-storage: add BAD_SENSE flag
This patch (as1311) fixes a problem in usb-storage: Some devices are
pretty broken when it comes to reporting sense data.  The information
they send back indicates that they have more than 18 bytes of sense
data available, but when the system asks for more than 18 they fail or
hang.  The symptom is that probing fails with multiple resets.

The patch adds a new BAD_SENSE flag to indicate that usb-storage
should never ask for more than 18 bytes of sense data.  The flag can
be set in an unusual_devs entry or via the "quirks=" module parameter,
and it is set automatically whenever a REQUEST SENSE command for more
than 18 bytes fails or times out.

An unusual_devs entry is added for the Agfa photo frame, which uses a
Prolific chip having this bug.

Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
Tested-by: Daniel Kukula <daniel.kuku@gmail.com>
Cc: stable <stable@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2009-12-11 11:55:26 -08:00
..
alauda.c USB: usb-storage: added missing MODULE_LICENSE("GPL") for usb-storage ums-* modules 2009-03-24 16:20:35 -07:00
cypress_atacb.c USB: usb-storage: added missing MODULE_LICENSE("GPL") for usb-storage ums-* modules 2009-03-24 16:20:35 -07:00
datafab.c USB: storage: Drop an unneeded a NULL test 2009-09-23 06:46:29 -07:00
debug.c USB: remove CVS keywords 2008-07-21 15:15:55 -07:00
debug.h USB: remove CVS keywords 2008-07-21 15:15:55 -07:00
freecom.c USB: usb-storage: added missing MODULE_LICENSE("GPL") for usb-storage ums-* modules 2009-03-24 16:20:35 -07:00
initializers.c USB: usb-storage fails to attach to Huawei Datacard cdrom device 2009-09-23 06:46:32 -07:00
initializers.h USB: remove CVS keywords 2008-07-21 15:15:55 -07:00
isd200.c isd200: use ATA_* defines instead of *_STAT and *_ERR ones 2009-04-01 21:42:25 +02:00
jumpshot.c USB: storage: Drop an unneeded a NULL test 2009-09-23 06:46:29 -07:00
karma.c USB: usb-storage: added missing MODULE_LICENSE("GPL") for usb-storage ums-* modules 2009-03-24 16:20:35 -07:00
Kconfig usb-storage: make onetouch a separate module 2009-03-24 16:20:35 -07:00
libusual.c usb-storage: prepare for subdriver separation 2009-03-24 16:20:34 -07:00
Makefile usb-storage: fix mistake in Makefile 2009-04-17 10:50:26 -07:00
onetouch.c USB: storage: fix a resume path GFP_NOIO must be used 2009-09-23 06:46:15 -07:00
option_ms.c USB: Fix option_ms regression in 2.6.31-rc2 2009-07-12 15:16:40 -07:00
option_ms.h USB: unusual dev for Option N.V. ZeroCD modems 2009-01-07 10:00:09 -08:00
protocol.c usb-storage: prepare for subdriver separation 2009-03-24 16:20:34 -07:00
protocol.h USB: usb-storage: merge ATAPI and QIC-157 protocol routines 2009-01-07 09:59:57 -08:00
scsiglue.c USB: usb-storage: Associate the name of the interface with the scsi host 2009-12-11 11:55:13 -08:00
scsiglue.h USB: remove CVS keywords 2008-07-21 15:15:55 -07:00
sddr09.c USB: usb-storage: added missing MODULE_LICENSE("GPL") for usb-storage ums-* modules 2009-03-24 16:20:35 -07:00
sddr55.c USB: usb-storage: added missing MODULE_LICENSE("GPL") for usb-storage ums-* modules 2009-03-24 16:20:35 -07:00
shuttle_usbat.c USB: usb-storage: added missing MODULE_LICENSE("GPL") for usb-storage ums-* modules 2009-03-24 16:20:35 -07:00
sierra_ms.c USB: usb-storage: fix return values from init functions 2009-06-15 21:44:46 -07:00
sierra_ms.h USB Storage Sierra: TRU-Install feature update 2008-08-13 17:32:51 -07:00
transport.c USB: usb-storage: add BAD_SENSE flag 2009-12-11 11:55:26 -08:00
transport.h USB: usb-storage: merge CB and CBI transport routines 2009-01-07 09:59:57 -08:00
unusual_alauda.h usb-storage: make alauda a separate module 2009-03-24 16:20:35 -07:00
unusual_cypress.h usb-storage: make cypress_atacb a separate module 2009-03-24 16:20:34 -07:00
unusual_datafab.h usb-storage: make datafab a separate module 2009-03-24 16:20:34 -07:00
unusual_devs.h USB: usb-storage: add BAD_SENSE flag 2009-12-11 11:55:26 -08:00
unusual_freecom.h usb-storage: make freecom a separate module 2009-03-24 16:20:34 -07:00
unusual_isd200.h usb-storage: make isd200 a separate module 2009-03-24 16:20:34 -07:00
unusual_jumpshot.h usb-storage: make jumpshot a separate module 2009-03-24 16:20:34 -07:00
unusual_karma.h usb-storage: make karma a separate module 2009-03-24 16:20:35 -07:00
unusual_onetouch.h usb-storage: make onetouch a separate module 2009-03-24 16:20:35 -07:00
unusual_sddr09.h usb-storage: make sddr09 a separate module 2009-03-24 16:20:34 -07:00
unusual_sddr55.h usb-storage: make sddr55 a separate module 2009-03-24 16:20:34 -07:00
unusual_usbat.h usb-storage: make shuttle_usbat a separate module 2009-03-24 16:20:34 -07:00
usb.c USB: usb-storage: add BAD_SENSE flag 2009-12-11 11:55:26 -08:00
usb.h USB: usb-storage: Associate the name of the interface with the scsi host 2009-12-11 11:55:13 -08:00
usual-tables.c usb-storage: make onetouch a separate module 2009-03-24 16:20:35 -07:00