linux/drivers/usb/storage
Benjamin Herrenschmidt b8430e1b82 usb-storage: Workaround devices with bogus sense size
usb-storage: Workaround devices with bogus sense size

Some devices, such as Huawei E169, advertise more than the standard
amount of sense data, causing us to set US_FL_SANE_SENSE, assuming
they support it. However, they subsequently fail the request sense
with that size.

This works around it generically. When a sense request fails due to
a device returning an error, US_FL_SANE_SENSE was set, and that sense
request used a larger sense size, we retry with a smaller size before
giving up.

Based on an original patch by Ben Efros <ben@pc-doctor.com>

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Acked-by: Alan Stern <stern@rowland.harvard.edu>
Cc: stable <stable@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2009-10-14 14:54:44 -07:00
..
Kconfig usb-storage: make onetouch a separate module 2009-03-24 16:20:35 -07:00
Makefile usb-storage: fix mistake in Makefile 2009-04-17 10:50:26 -07: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
libusual.c usb-storage: prepare for subdriver separation 2009-03-24 16:20:34 -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 block: Use accessor functions for queue limits 2009-05-22 23:22:54 +02: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-storage: Workaround devices with bogus sense size 2009-10-14 14:54:44 -07: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: storage: iRiver P7 UNUSUAL_DEV patch 2009-10-09 13:52:07 -07: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-storage: make onetouch a separate module 2009-03-24 16:20:35 -07:00
usb.h usb-storage: prepare for subdriver separation 2009-03-24 16:20:34 -07:00
usual-tables.c usb-storage: make onetouch a separate module 2009-03-24 16:20:35 -07:00