aha/drivers
Alan Stern f1a0743bc0 USB: storage: When a device returns no sense data, call it a Hardware Error
This patch (as1294) fixes a problem that has plagued users for several
kernel releases.  Some USB mass-storage devices don't return any sense
data when they encounter certain kinds of errors.  The SCSI layer
interprets this to mean that the operation should be retried, and the
same thing happens -- over and over again with no limit.  In some
circumstances (such as when a bus reset occurs) that is the right
thing to do, but not here.

The patch checks for this condition (a transport failure with no sense
data) and changes the result code to DID_ERROR and the sense code to
Hardware Error.  This does get only a limited number of retries, and
so the command will fail relatively quickly instead of getting stuck
in an infinite loop.

This fixes a large part of Bugzilla #14118.

Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
Tested-by: Mantas Mikulenas <grawity@gmail.com>
CC: stable <stable@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2009-10-09 13:52:08 -07:00
..
accessibility
acpi Merge branch 'acpi-pad' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-acpi-2.6 2009-10-04 15:03:00 -07:00
amba
ata pata_atp867x: add Power Management support 2009-10-06 20:58:23 -04:00
atm net: Make setsockopt() optlen be unsigned. 2009-09-30 16:12:20 -07:00
auxdisplay
base
block Merge branch 'for-linus' of git://git.kernel.dk/linux-2.6-block 2009-10-04 12:39:14 -07:00
bluetooth
cdrom sysctl: remove "struct file *" argument of ->proc_handler 2009-09-24 07:21:04 -07:00
char Merge branch 'fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/kyle/parisc-2.6 2009-10-08 07:40:19 -07:00
clocksource
connector connector: Fix incompatible pointer type warning 2009-10-06 01:39:51 -07:00
cpufreq
cpuidle
crypto
dca
dio
dma
edac Merge branch 'x86-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2009-10-08 12:06:36 -07:00
eisa
firewire headers: remove sched.h from poll.h 2009-10-04 15:05:10 -07:00
firmware iSCSI/iBFT: use proper address translation 2009-10-05 12:05:40 -07:00
gpio const: constify remaining file_operations 2009-10-01 16:11:11 -07:00
gpu Merge branch 'drm-next' of ../drm-next into drm-linus 2009-10-08 14:03:05 +10:00
hid headers: remove sched.h from poll.h 2009-10-04 15:05:10 -07:00
hwmon lis3lv02d_spi: module unload didn't remove sysfs entry 2009-10-08 07:36:40 -07:00
i2c i2c: Hide probe errors caused by ACPI resource conflicts 2009-10-04 22:53:45 +02:00
ide Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/ide-2.6 2009-10-08 11:59:06 -07:00
idle
ieee1394 const: mark struct vm_struct_operations 2009-09-27 11:39:25 -07:00
ieee802154
infiniband headers: remove sched.h from poll.h 2009-10-04 15:05:10 -07:00
input headers: remove sched.h from poll.h 2009-10-04 15:05:10 -07:00
isdn Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6 2009-10-08 11:59:30 -07:00
leds leds: leds-pca9532 - Drop unused module parameters 2009-10-04 22:53:43 +02:00
lguest const: constify remaining file_operations 2009-10-01 16:11:11 -07:00
macintosh macintosh: Don't assume i2c device probing always succeeds 2009-10-04 22:53:46 +02:00
mca
md Merge branch 'for-linus' of git://git.kernel.dk/linux-2.6-block 2009-10-04 12:39:14 -07:00
media headers: remove sched.h from poll.h 2009-10-04 15:05:10 -07:00
memstick memstick: move dev_dbg 2009-09-24 07:21:05 -07:00
message
mfd headers: remove sched.h from poll.h 2009-10-04 15:05:10 -07:00
misc max6875: Discard obsolete detect method 2009-10-04 22:53:41 +02:00
mmc mmc: sdio: don't require CISTPL_VERS_1 to contain 4 strings 2009-10-08 07:36:40 -07:00
mtd block: use normal I/O path for discard requests 2009-10-01 21:19:30 +02:00
net Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6 2009-10-08 11:59:30 -07:00
nubus
of of: remove "stm,m25p40" alias 2009-09-23 07:39:43 -07:00
oprofile cpumask: use zalloc_cpumask_var() where possible 2009-09-24 09:34:24 +09:30
parisc
parport sysctl: remove "struct file *" argument of ->proc_handler 2009-09-24 07:21:04 -07:00
pci ACPICA: fixup after acpi_get_object_info() change 2009-09-25 14:24:22 -04:00
pcmcia Merge master.kernel.org:/home/rmk/linux-2.6-arm 2009-10-02 16:20:43 -07:00
platform Merge branches 'sony-laptop', 'bugzilla-14247' and 'bugzilla-14271' into release 2009-10-02 11:27:57 -04:00
pnp ACPI: remove acpi_device.flags.hardware_id 2009-09-25 15:09:48 -04:00
power
pps
ps3
rapidio
regulator
rtc Merge branch 'origin' into for-linus 2009-09-24 21:22:33 +01:00
s390 const: constify remaining file_operations 2009-10-01 16:11:11 -07:00
sbus
scsi const: constify remaining file_operations 2009-10-01 16:11:11 -07:00
serial Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6 2009-10-08 11:59:30 -07:00
sfi SFI: remove __init from sfi_verify_table 2009-10-03 01:16:12 -04:00
sh
sn
spi spi-imx: strip down chipselect function to only drive the chipselect 2009-10-01 16:11:17 -07:00
ssb ssb/sdio: fix printk format warnings 2009-09-23 11:35:41 -04:00
staging Merge branch 'i2c-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jdelvare/staging 2009-10-04 14:59:14 -07:00
tc
telephony
thermal
uio const: mark struct vm_struct_operations 2009-09-27 11:39:25 -07:00
usb USB: storage: When a device returns no sense data, call it a Hardware Error 2009-10-09 13:52:08 -07:00
uwb const: constify remaining file_operations 2009-10-01 16:11:11 -07:00
video Merge branch 'omap-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap-2.6 2009-10-08 12:01:01 -07:00
virtio
vlynq drivers/vlynq/vlynq.c: fix resource size off by 1 error 2009-09-24 07:21:05 -07:00
w1 ds2482: Discard obsolete detect method 2009-10-04 22:53:41 +02:00
watchdog [WATCHDOG] Add support for the Avionic Design Xanthos watchdog timer. 2009-09-25 08:38:16 +00:00
xen headers: remove sched.h from poll.h 2009-10-04 15:05:10 -07:00
zorro
Kconfig
Makefile Merge git://git.infradead.org/mtd-2.6 2009-09-23 10:07:49 -07:00