Mikulas Patocka
fd1232b214
sym53c8xx_2: Set DID_REQUEUE return code when aborting squeue
...
This patch fixes I/O errors with the sym53c8xx_2 driver when the disk
returns QUEUE FULL status.
When the controller encounters an error (including QUEUE FULL or BUSY
status), it aborts all not yet submitted requests in the function
sym_dequeue_from_squeue.
This function aborts them with DID_SOFT_ERROR.
If the disk has full tag queue, the request that caused the overflow is
aborted with QUEUE FULL status (and the scsi midlayer properly retries
it until it is accepted by the disk), but the sym53c8xx_2 driver aborts
the following requests with DID_SOFT_ERROR --- for them, the midlayer
does just a few retries and then signals the error up to sd.
The result is that disk returning QUEUE FULL causes request failures.
The error was reproduced on 53c895 with COMPAQ BD03685A24 disk
(rebranded ST336607LC) with command queue 48 or 64 tags. The disk has
64 tags, but under some access patterns it return QUEUE FULL when there
are less than 64 pending tags. The SCSI specification allows returning
QUEUE FULL anytime and it is up to the host to retry.
Signed-off-by: Mikulas Patocka <mpatocka@redhat.com>
Cc: Matthew Wilcox <matthew@wil.cx>
Cc: James Bottomley <JBottomley@Parallels.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2014-04-12 18:02:16 -07:00
..
accessibility
acpi
Merge branch 'acpi-config'
2014-04-08 21:34:51 +02:00
amba
ARM: SoC: driver changes
2014-04-05 15:37:40 -07:00
ata
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial
2014-04-02 16:23:38 -07:00
atm
auxdisplay
base
regmap: Fix for nodev mode
2014-04-11 13:25:08 -07:00
bcma
bcma: gpio: register 32 GPIOs on BCM5357
2014-03-27 14:20:04 -04:00
block
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
2014-04-12 14:49:50 -07:00
bluetooth
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next
2014-04-02 20:53:45 -07:00
bus
ARM: SoC: driver changes
2014-04-05 15:37:40 -07:00
cdrom
char
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
2014-04-12 14:49:50 -07:00
clk
== Changes to existing drivers ==
2014-04-07 10:24:18 -07:00
clocksource
CPU hotplug notifiers registration fixes for 3.15-rc1
2014-04-07 14:55:46 -07:00
connector
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next
2014-04-02 20:53:45 -07:00
cpufreq
Merge branch 'pm-cpufreq'
2014-04-08 13:28:02 +02:00
cpuidle
Merge branch 'pm-cpuidle'
2014-04-08 13:27:40 +02:00
crypto
Merge git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6
2014-04-03 09:28:16 -07:00
dca
devfreq
dio
dma
Merge branch 'for-linus' of git://git.infradead.org/users/vkoul/slave-dma
2014-04-10 08:55:08 -07:00
edac
Merge branch 'v4l_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media
2014-04-04 09:50:07 -07:00
eisa
extcon
firewire
firmware
Merge branch 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
2014-04-11 11:58:33 -07:00
fmc
gpio
== Changes to existing drivers ==
2014-04-07 10:24:18 -07:00
gpu
Merge branch 'drm-next' of git://people.freedesktop.org/~airlied/linux
2014-04-08 09:52:16 -07:00
hid
Merge branch 'v4l_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media
2014-04-04 09:50:07 -07:00
hsi
hv
Char/Misc driver patches for 3.15-rc1
2014-04-01 16:13:21 -07:00
hwmon
Merge branch 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc
2014-04-09 08:35:31 -07:00
hwspinlock
i2c
Merge branch 'i2c/for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux
2014-04-09 08:45:40 -07:00
ide
idle
Merge branch 'pm-cpuidle'
2014-04-08 13:27:40 +02:00
iio
== Changes to existing drivers ==
2014-04-07 10:24:18 -07:00
infiniband
Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending
2014-04-12 16:51:08 -07:00
input
pwm: Changes for v3.15-rc1
2014-04-05 18:32:31 -07:00
iommu
IOMMU Upates for Linux v3.15
2014-04-05 18:46:26 -07:00
ipack
irqchip
ARM: SoC: driver changes
2014-04-05 15:37:40 -07:00
isdn
isdnloop: several buffer overflows
2014-04-08 12:41:13 -04:00
leds
Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/cooloney/linux-leds
2014-04-10 09:06:10 -07:00
lguest
drivers/lguest/page_tables.c: rename do_set_pte()
2014-04-07 16:35:52 -07:00
macintosh
mailbox
mcb
md
Just a few md patches for the 3.15 merge window.
2014-04-11 17:20:38 -07:00
media
[media] gpsca: remove the risk of a division by zero
2014-04-08 11:01:12 -03:00
memory
memstick
message
PCI changes for the v3.15 merge window:
2014-04-01 15:14:04 -07:00
mfd
MMC highlights for 3.15:
2014-04-09 08:39:39 -07:00
misc
drivers/misc/sgi-gru/grukdump.c: cleanup gru_dump_context() a little
2014-04-07 16:36:09 -07:00
mmc
MMC highlights for 3.15:
2014-04-09 08:39:39 -07:00
mtd
MTD updates for 3.15:
2014-04-07 10:17:30 -07:00
net
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
2014-04-12 17:31:22 -07:00
nfc
ntb
ntb: Use pci_enable_msix_range() instead of pci_enable_msix()
2014-04-07 10:59:20 -07:00
nubus
of
MTD updates for 3.15:
2014-04-07 10:17:30 -07:00
oprofile
parisc
parport
pci
Nothing major: the stricter permissions checking for sysfs broke
2014-04-06 09:38:07 -07:00
pcmcia
PCI changes for the v3.15 merge window:
2014-04-01 15:14:04 -07:00
phy
ARM: SoC: driver changes
2014-04-05 15:37:40 -07:00
pinctrl
This is the bulk of GPIO changes for v3.15:
2014-04-03 16:44:15 -07:00
platform
alienware-wmi: cover some scenarios where memory allocations would fail
2014-04-10 12:11:56 -04:00
pnp
More ACPI and power management updates for 3.15-rc1
2014-04-02 14:10:21 -07:00
power
powercap
CPU hotplug notifiers registration fixes for 3.15-rc1
2014-04-07 14:55:46 -07:00
pps
ps3
ptp
net: ptp: move PTP classifier in its own file
2014-04-01 16:43:18 -04:00
pwm
pwm: Changes for v3.15-rc1
2014-04-05 18:32:31 -07:00
rapidio
rapidio: rework device hierarchy and introduce mport class of devices
2014-04-07 16:36:07 -07:00
regulator
regulator: Fixes for v3.15
2014-04-11 13:30:05 -07:00
remoteproc
reset
rpmsg
rtc
ARM: SoC: driver changes
2014-04-05 15:37:40 -07:00
s390
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux
2014-04-08 12:02:28 -07:00
sbus
scsi
sym53c8xx_2: Set DID_REQUEUE return code when aborting squeue
2014-04-12 18:02:16 -07:00
sfi
sh
ARM: SoC: sh driver changes
2014-04-05 15:38:41 -07:00
sn
spi
spi: Fixes for v3.15
2014-04-11 13:35:49 -07:00
spmi
ssb
staging
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
2014-04-12 17:31:22 -07:00
target
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
2014-04-12 17:31:22 -07:00
tc
thermal
Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/rzhang/linux
2014-04-10 09:15:46 -07:00
tty
Merge git://git.infradead.org/users/eparis/audit
2014-04-12 12:38:53 -07:00
uio
usb
Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending
2014-04-12 16:51:08 -07:00
uwb
vfio
VFIO updates for v3.15 include:
2014-04-03 14:05:02 -07:00
vhost
Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending
2014-04-12 16:51:08 -07:00
video
- Call put_device() instead of kfree() - core
2014-04-10 08:52:35 -07:00
virt
virtio
vlynq
vme
w1
watchdog
CPU hotplug notifiers registration fixes for 3.15-rc1
2014-04-07 14:55:46 -07:00
xen
Fix arm build of drivers/xen/events/
2014-04-07 17:50:18 -07:00
zorro
Kconfig
Makefile