android_kernel_samsung_msm8976/drivers
Wei Fang 52f5551873 scsi: fix race between simultaneous decrements of ->host_failed
commit 72d8c36ec364c82bf1bf0c64dfa1041cfaf139f7 upstream.

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>
Signed-off-by: Willy Tarreau <w@1wt.eu>
2019-07-27 21:41:57 +02:00
..
accessibility
acpi ACPICA: Dispatcher: Update thread ID for recursive method calls 2016-06-07 10:42:53 +02:00
amba
android ANDROID: binder: add hwbinder,vndbinder to BINDER_DEVICES. 2018-02-06 13:12:16 +01:00
ata scsi: fix race between simultaneous decrements of ->host_failed 2019-07-27 21:41:57 +02:00
atm
auxdisplay
base base: make module_create_drivers_dir race-free 2019-07-27 21:41:56 +02:00
battery Import T813XXS2BRC2 kernel source changes 2018-05-26 00:39:42 +02:00
battery_v2 Import latest Samsung release 2017-04-18 03:43:52 +02:00
bcma
bif
block loop: fix concurrent lo_open/lo_release 2018-08-20 11:56:48 +02:00
bluetooth Merge tag 'LA.BR.1.3.6-05410-8976.0' of https://source.codeaurora.org/quic/la/kernel/msm-3.10 into HEAD 2018-02-06 13:11:45 +01:00
bus
cdrom BACKPORT: block: add blk_rq_set_block_pc() 2017-04-22 23:03:01 +02:00
char Merge tag 'LA.BR.1.3.6-05410-8976.0' of https://source.codeaurora.org/quic/la/kernel/msm-3.10 into HEAD 2018-02-06 13:11:45 +01:00
clk This is the 3.10.102 stable release 2017-04-18 17:22:08 +02:00
clocksource Merge tag 'LA.BR.1.3.6-05410-8976.0' of https://source.codeaurora.org/quic/la/kernel/msm-3.10 into HEAD 2018-02-06 13:11:45 +01:00
connector connector: bump skb->users before callback invocation 2016-01-28 21:49:33 -08:00
coresight coresight: tmc: Fix use after free issue with tmc read 2017-07-30 10:34:00 -07:00
cpufreq Import latest Samsung release 2017-04-18 03:43:52 +02:00
cpuidle Merge tag 'LA.BR.1.3.6-05410-8976.0' of https://source.codeaurora.org/quic/la/kernel/msm-3.10 into HEAD 2018-02-06 13:11:45 +01:00
crypto crypto: ux500 - memmove the right size 2019-07-27 21:41:53 +02:00
dca
debug Import latest Samsung release 2017-04-18 03:43:52 +02:00
debug_32 Import latest Samsung release 2017-04-18 03:43:52 +02:00
devfreq devfreq_devbw: Assign labels to devbw nodes. 2017-04-18 12:24:57 +02:00
dio
dma Merge remote-tracking branch 'f2fs/linux-3.10.y' into HEAD 2017-04-18 17:02:28 +02:00
edac This is the 3.10.102 stable release 2017-04-18 17:22:08 +02:00
eisa
esoc
extcon Import latest Samsung release 2017-04-18 03:43:52 +02:00
fingerprint drivers: fingerprint: Kill FEATURE_SPI_WAKELOCK 2017-04-19 17:02:36 +02:00
firewire This is the 3.10.95 stable release 2017-04-18 17:14:54 +02:00
firmware Import T813XXU2BQD1 kernel source changes 2017-04-22 16:30:03 +02:00
gpio Import latest Samsung release 2017-04-18 03:43:52 +02:00
gpu Merge tag 'LA.BR.1.3.6-05010-8976.0' of https://source.codeaurora.org/quic/la/kernel/msm-3.10 into cm-14.1-merge 2017-11-22 00:26:48 +01:00
hid HID: usbhid: fix out-of-bounds bug 2018-08-20 12:00:10 +02:00
hsi
hv Drivers: hv: vmbus: prevent cpu offlining on newer hypervisors 2016-06-07 10:42:52 +02:00
hwmon This is the 3.10.102 stable release 2017-04-18 17:22:08 +02:00
hwspinlock
i2c This is the 3.10.102 stable release 2017-04-18 17:22:08 +02:00
ide
idle
iio iio: Fix error handling in iio_trigger_attach_poll_func 2019-07-27 21:41:56 +02:00
infiniband IB/qib: fix mcast detach when qp not attached 2016-03-03 15:06:24 -08:00
input Input: xpad - validate USB endpoint count during probe 2019-07-27 21:41:49 +02:00
iommu This is the 3.10.98 stable release 2017-04-18 17:17:24 +02:00
ipack
irqchip Import latest Samsung release 2017-04-18 03:43:52 +02:00
isdn ppp, slip: Validate VJ compression slot parameters completely 2016-01-28 21:49:35 -08:00
leds Merge tag 'LA.BR.1.3.6-03510-8976.0' into HEAD 2017-04-18 12:11:50 +02:00
lguest Import latest Samsung release 2017-04-18 03:43:52 +02:00
macintosh
mailbox
md Merge tag 'LA.BR.1.3.6-04710-8976.0' of https://source.codeaurora.org/quic/la/kernel/msm-3.10 into HEAD 2017-09-15 11:27:24 +02:00
media msm: camera: Return -NOTTY on invalid ioctl command. 2018-05-26 00:39:36 +02:00
memory
memstick
message
mfd Merge tag 'LA.BR.1.3.6-05010-8976.0' of https://source.codeaurora.org/quic/la/kernel/msm-3.10 into cm-14.1-merge 2017-11-22 00:26:48 +01:00
misc qseecom: fix an app unloading issue when the app is blocked 2018-08-20 12:03:48 +02:00
mmc Import T813XXS2BRC2 kernel source changes 2018-05-26 00:39:42 +02:00
motor Import latest Samsung release 2017-04-18 03:43:52 +02:00
mtd This is the 3.10.102 stable release 2017-04-18 17:22:08 +02:00
muic Import T813XXS2BRC2 kernel source changes 2018-05-26 00:39:42 +02:00
net cdc_ncm: workaround for EM7455 "silent" data interface 2019-07-27 21:41:55 +02:00
nfc Import latest Samsung release 2017-04-18 03:43:52 +02:00
ntb
nubus
of Merge remote-tracking branch 'f2fs/linux-3.10.y' into HEAD 2017-04-18 17:02:28 +02:00
oprofile
parisc parisc iommu: fix panic due to trying to allocate too large region 2016-01-28 21:49:36 -08:00
parport
pci Merge tag 'LA.BR.1.3.6-04110-8976.0' of https://source.codeaurora.org/quic/la/kernel/msm-3.10 into HEAD 2017-07-08 18:34:23 +02:00
pcmcia
phy
pinctrl Merge remote-tracking branch 'f2fs/linux-3.10.y' into HEAD 2017-04-18 17:02:28 +02:00
platform Merge tag 'LA.BR.1.3.6-05410-8976.0' of https://source.codeaurora.org/quic/la/kernel/msm-3.10 into HEAD 2018-02-06 13:11:45 +01:00
pnp asmlinkage, pnp: Make variables used from assembler code visible 2016-06-07 10:42:53 +02:00
power angler: remove 'reboot edl' interface for security 2018-05-26 00:39:32 +02:00
pps
ps3
ptp
pwm
rapidio
regulator Merge remote-tracking branch 'f2fs/linux-3.10.y' into HEAD 2017-04-18 17:02:28 +02:00
remoteproc remoteproc: avoid stack overflow in debugfs file 2016-02-19 14:22:37 -08:00
reset
rpmsg
rtc Import T813XXS2BRC2 kernel source changes 2018-05-26 00:39:42 +02:00
s390 s390/dasd: fix refcount for PAV reassignment 2016-03-03 15:06:23 -08:00
sbus
scsi scsi: fix race between simultaneous decrements of ->host_failed 2019-07-27 21:41:57 +02:00
sensorhub Import T713XXU2BQD3 kernel source changes 2017-07-01 12:51:07 +02:00
sensors Import latest Samsung release 2017-04-18 03:43:52 +02:00
sfi
sh
slimbus slim-msm: Synchronize SSR callbacks 2017-05-05 19:20:28 +00:00
sn
soc ASoC: apr: Add validity check to APR port 2018-08-20 12:08:44 +02:00
soundwire swr-wcd-ctrl: Ensure soundwire banks are always in sync 2016-05-03 04:51:39 -07:00
spi This is the 3.10.97 stable release 2017-04-18 17:17:20 +02:00
spmi Merge tag 'LA.BR.1.3.6-03510-8976.0' into HEAD 2017-04-18 12:11:50 +02:00
ssb
ssbi
staging Import T813XXS2BRC2 kernel source changes 2018-05-26 00:39:42 +02:00
switch
target BACKPORT: block: add blk_rq_set_block_pc() 2017-04-22 23:03:01 +02:00
tc
thermal Merge tag 'LA.BR.1.3.6-03910-8976.0' of https://source.codeaurora.org/quic/la/kernel/msm-3.10 into HEAD 2017-05-26 13:28:48 +02:00
tty tty: n_hdlc: get rid of racy n_hdlc.tbuf 2017-04-22 23:02:57 +02:00
uio Merge tag 'LA.BR.1.3.6-03510-8976.0' into HEAD 2017-04-18 12:11:50 +02:00
usb USB: serial: option: add support for Telit LE910 PID 0x1206 2019-07-27 21:41:46 +02:00
uwb
vfio
vhost Merge remote-tracking branch 'f2fs/linux-3.10.y' into HEAD 2017-04-18 17:02:28 +02:00
video Import T813XXS2BRC2 kernel source changes 2018-05-26 00:39:42 +02:00
virt
virtio virtio: fix memory leak of virtio ida cache layers 2016-03-03 15:06:21 -08:00
vlynq
vme
w1
watchdog watchdog: rc32434_wdt: fix ioctl error handling 2016-06-07 10:42:46 +02:00
xen This is the 3.10.96 stable release 2017-04-18 17:16:02 +02:00
zorro
Kconfig msm: gud: Remove gud driver 2017-09-08 18:49:12 +00:00
Makefile msm: gud: Remove gud driver 2017-09-08 18:49:12 +00:00