WSL2-Linux-Kernel/drivers
Wei Fang 72d8c36ec3 scsi: fix race between simultaneous decrements of ->host_failed
sas_ata_strategy_handler() adds the works of the ata error handler to
system_unbound_wq. This workqueue asynchronously runs work items, so the
ata error handler will be performed concurrently on different CPUs. In
this case, ->host_failed will be decreased simultaneously in
scsi_eh_finish_cmd() on different CPUs, and become abnormal.

It will lead to permanently inequality between ->host_failed and
->host_busy, and scsi error handler thread won't start running. IO
errors after that won't be handled.

Since all scmds must have been handled in the strategy handler, just
remove the decrement in scsi_eh_finish_cmd() and zero ->host_busy after
the strategy handler to fix this race.

Fixes: 50824d6c56 ("[SCSI] libsas: async ata-eh")
Cc: stable@vger.kernel.org
Signed-off-by: Wei Fang <fangwei1@huawei.com>
Reviewed-by: James Bottomley <jejb@linux.vnet.ibm.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
2016-06-08 23:08:04 -04:00
..
accessibility
acpi Merge branches 'acpi-pci', 'acpi-misc' and 'acpi-tools' 2016-05-16 16:45:48 +02:00
amba
android
ata scsi: fix race between simultaneous decrements of ->host_failed 2016-06-08 23:08:04 -04:00
atm
auxdisplay
base Generic device properties framework update for v4.7-rc1 2016-05-16 19:51:04 -07:00
bcma
block Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next 2016-05-17 16:26:30 -07:00
bluetooth Bluetooth: Add USB ID 13D3:3487 to ath3k 2016-05-13 16:54:59 +02:00
bus ARM: SoC driver updates for v4.7 2016-05-18 13:14:02 -07:00
cdrom
char Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next 2016-05-17 16:26:30 -07:00
clk ARM: SoC driver updates for v4.7 2016-05-18 13:14:02 -07:00
clocksource Merge branch 'timers-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2016-05-17 09:49:28 -07:00
connector
cpufreq Power management material for v4.7-rc1 2016-05-16 19:17:22 -07:00
cpuidle Merge back new cpuidle material for v4.7. 2016-05-06 22:08:46 +02:00
crypto crypto: qat - change the adf_ctl_stop_devices to void 2016-05-13 17:30:18 +08:00
dca
devfreq PM / devfreq: style/typo fixes 2016-05-03 11:22:10 +09:00
dio
dma
dma-buf
edac Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2016-05-17 17:05:30 -07:00
eisa
extcon
firewire treewide: replace dev->trans_start update with helper 2016-05-04 14:16:49 -04:00
firmware Merge branch 'stable/for-linus-4.7' of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/ibft 2016-05-18 15:30:04 -07:00
fmc
fpga
gpio This is the bulk of GPIO changes for kernel cycle v4.7: 2016-05-17 17:39:42 -07:00
gpu ARM: SoC driver updates for v4.7 2016-05-18 13:14:02 -07:00
hid Merge branch 'for-4.7/wacom' into for-linus 2016-05-17 12:42:27 +02:00
hsi
hv Drivers: hv: vmbus: Fix signaling logic in hv_need_to_signal_on_read() 2016-04-30 14:05:44 -07:00
hwmon
hwspinlock
hwtracing
i2c
ide
idle
iio iio: imu: mpu6050: Fix name/chip_id when using ACPI 2016-05-04 08:44:27 +01:00
infiniband SCSI misc on 20160517 2016-05-18 16:38:59 -07:00
input Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input 2016-05-18 17:12:23 -07:00
iommu Linux 4.6-rc6 2016-05-05 08:35:00 +02:00
ipack
irqchip ARM: SoC platform updates for v4.7 2016-05-18 12:35:46 -07:00
isdn ISDN: eicon: replace custom hex_asc_lo() / hex_pack_byte() 2016-05-08 23:52:13 -04:00
leds leds: gpio: Support the "panic-indicator" firmware property 2016-05-06 10:26:07 +02:00
lguest
lightnvm lightnvm: reserved space calculation incorrect 2016-05-06 12:51:10 -06:00
macintosh
mailbox
mcb
md - based on Jens' 'for-4.7/core' to have DM thinp's discard support use 2016-05-17 16:13:00 -07:00
media media updates for v4.7-rc1 2016-05-18 17:03:51 -07:00
memory
memstick memstick: trivial fix of spelling mistake on management 2016-04-28 10:58:33 +02:00
message SCSI misc on 20160517 2016-05-18 16:38:59 -07:00
mfd This is the bulk of GPIO changes for kernel cycle v4.7: 2016-05-17 17:39:42 -07:00
misc Merge branch 'x86-platform-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2016-05-16 16:46:03 -07:00
mmc Merge branch 'for-4.7/drivers' of git://git.kernel.dk/linux-block 2016-05-17 16:03:32 -07:00
mtd ARM: SoC driver updates for v4.7 2016-05-18 13:14:02 -07:00
net iwlwifi: fix mis-merge that breaks the driver 2016-05-18 12:11:22 -07:00
nfc NFC: pn533: handle interrupted commands in pn533_recv_frame 2016-05-10 00:01:47 +02:00
ntb
nubus
nvdimm libnvdimm, pfn: fix ARCH=alpha allmodconfig build failure 2016-05-06 10:20:10 -07:00
nvme Merge branch 'for-4.7/drivers' of git://git.kernel.dk/linux-block 2016-05-17 16:03:32 -07:00
nvmem nvmem: mxs-ocotp: fix buffer overflow in read 2016-05-02 08:18:01 -07:00
of ARM: SoC cleanups and fixes for v4.7 2016-05-18 12:28:29 -07:00
oprofile
parisc
parport
pci ARM: SoC driver updates for v4.7 2016-05-18 13:14:02 -07:00
pcmcia
perf perf/arm: Special-case hetereogeneous CPUs 2016-05-05 10:13:59 +02:00
phy ARM: SoC driver updates for v4.7 2016-05-18 13:14:02 -07:00
pinctrl ARM: SoC driver updates for v4.7 2016-05-18 13:14:02 -07:00
platform This is the bulk of GPIO changes for kernel cycle v4.7: 2016-05-17 17:39:42 -07:00
pnp
power PM / AVS: rockchip-io: make io-domains a child of the GRF 2016-04-26 19:12:28 +02:00
powercap Power management material for v4.7-rc1 2016-05-16 19:17:22 -07:00
pps
ps3
ptp
pwm Merge remote-tracking branches 'regulator/topic/pwm', 'regulator/topic/qcom-spmi', 'regulator/topic/rk808' and 'regulator/topic/s2mps11' into regulator-next 2016-05-13 14:23:46 +01:00
rapidio rapidio/mport_cdev: fix uapi type definitions 2016-05-05 17:38:53 -07:00
ras
regulator Merge remote-tracking branches 'regulator/topic/tps6524x' and 'regulator/topic/twl' into regulator-next 2016-05-13 14:23:49 +01:00
remoteproc remoteproc: Add additional crash reasons 2016-05-12 15:50:19 -07:00
reset
rpmsg rpmsg: add THIS_MODULE to rpmsg_driver in rpmsg core 2016-05-06 11:08:58 -07:00
rtc
s390 SCSI misc on 20160517 2016-05-18 16:38:59 -07:00
sbus
scsi scsi: fix race between simultaneous decrements of ->host_failed 2016-06-08 23:08:04 -04:00
sfi
sh
sn
soc ARM: SoC driver updates for v4.7 2016-05-18 13:14:02 -07:00
spi Merge remote-tracking branches 'spi/fix/fsl-dspi', 'spi/fix/omap2-mcspi', 'spi/fix/pxa2xx' and 'spi/fix/ti-qspi' into spi-linus 2016-05-06 18:20:37 +01:00
spmi
ssb ssb: gpio_driver: use gpiochip data pointer 2016-04-26 15:34:49 +02:00
staging media updates for v4.7-rc1 2016-05-18 17:03:51 -07:00
target Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2016-05-17 17:05:30 -07:00
tc
thermal Thermal / ACPI / video: add INT3406 thermal driver 2016-05-11 02:15:31 +02:00
thunderbolt
tty This is the bulk of GPIO changes for kernel cycle v4.7: 2016-05-17 17:39:42 -07:00
uio
usb SCSI misc on 20160517 2016-05-18 16:38:59 -07:00
uwb
vfio
vhost
video ACPI material for v4.7-rc1 2016-05-16 19:41:41 -07:00
virt
virtio virtio: Silence uninitialized variable warning 2016-05-01 15:50:08 +03:00
vlynq
vme
w1
watchdog treewide: Fix typos in printk 2016-04-28 10:52:28 +02:00
xen Merge branch 'linus' into efi/core, to pick up fixes 2016-05-07 07:00:07 +02:00
zorro
Kconfig
Makefile