1
0
Fork 0
remarkable-linux/Documentation/scsi
Wei Fang bcef1c817a scsi: fix race between simultaneous decrements of ->host_failed
[ Upstream commit 72d8c36ec3 ]

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: Sasha Levin <sasha.levin@oracle.com>
2016-07-10 20:19:54 -04:00
..
scsi_transport_srp scsi_transport_srp: Add rport state diagram 2014-01-21 10:46:17 -08:00
00-INDEX Documentation/: update 00-INDEX files 2014-02-10 16:01:40 -08:00
53c700.txt Doc: 53c700: drop never defined (Kconfig) macros 2011-11-08 10:24:15 +01:00
BusLogic.txt doc: fix wrong arch/i386 references 2011-06-13 13:43:05 +02:00
ChangeLog.1992-1997
ChangeLog.arcmsr [SCSI] arcmsr: update version and changelog 2008-03-03 13:10:22 -06:00
ChangeLog.ips
ChangeLog.lpfc Documentation: Fix multiple typo in Documentation 2012-03-07 16:08:24 +01:00
ChangeLog.megaraid Fix common misspellings 2011-03-31 11:26:23 -03:00
ChangeLog.megaraid_sas megaraid_sas: Version and Changelog update 2014-09-16 09:09:54 -07:00
ChangeLog.ncr53c8xx Fix common misspellings 2011-03-31 11:26:23 -03:00
ChangeLog.sym53c8xx Fix common misspellings 2011-03-31 11:26:23 -03:00
ChangeLog.sym53c8xx_2
FlashPoint.txt Documentation: update broken web addresses. 2010-08-04 15:21:40 +02:00
LICENSE.FlashPoint
LICENSE.qla2xxx qla2xxx: Change copyright year to 2014 in all the source files. 2014-05-19 13:31:02 +02:00
LICENSE.qla4xxx [SCSI] qla4xxx: Update Copyright header 2013-09-03 07:27:54 -07:00
Mylex.txt Documentation: update broken web addresses. 2010-08-04 15:21:40 +02:00
NinjaSCSI.txt Documentation: update broken web addresses. 2010-08-04 15:21:40 +02:00
aacraid.txt [SCSI] aacraid driver update 2009-04-03 09:23:11 -05:00
advansys.txt
aha152x.txt Fix common misspellings 2011-03-31 11:26:23 -03:00
aic7xxx.txt Documentation: remove references to /etc/modprobe.conf 2012-03-30 16:03:15 -07:00
aic79xx.txt Documentation: remove references to /etc/modprobe.conf 2012-03-30 16:03:15 -07:00
arcmsr_spec.txt
bfa.txt [SCSI] bfa: add readme file 2012-02-19 08:09:01 -06:00
bnx2fc.txt [SCSI] bnx2fc: Add driver documentation 2011-09-22 15:10:59 +04:00
cxgb3i.txt [SCSI] cxgb3i: Fix spelling errors in documentation 2009-02-21 20:29:37 -06:00
dc395x.txt
dpti.txt
dtc3x80.txt Documentation/: it's -> its where appropriate 2010-04-23 02:09:52 +02:00
g_NCR5380.txt
hpsa.txt [SCSI] hpsa: export resettable host attribute 2011-03-14 18:44:41 -05:00
hptiop.txt Documentation/scsi/hptiop.txt fix a typo 2013-08-20 12:41:12 +02:00
in2000.txt
libsas.txt libsas: remove task_collector mode 2014-11-27 16:40:24 +01:00
link_power_management_policy.txt [libata] Link power management infrastructure 2007-10-29 11:00:35 -04:00
lpfc.txt Documentation cleanup: trivial misspelling, punctuation, and grammar corrections. 2008-07-26 12:00:06 -07:00
megaraid.txt
ncr53c8xx.txt genirq: Remove the deprecated 'IRQF_DISABLED' request_irq() flag entirely 2015-03-05 20:53:06 +01:00
osd.txt Boaz Harrosh - fix email in Documentation 2014-10-19 20:36:36 +03:00
osst.txt Documentation: remove references to /etc/modprobe.conf 2012-03-30 16:03:15 -07:00
ppa.txt Documentation: update broken web addresses. 2010-08-04 15:21:40 +02:00
qlogicfas.txt
scsi-changer.txt Fix common misspellings 2011-03-31 11:26:23 -03:00
scsi-generic.txt Documentation: Fix Broken URL "freshmeat" 2012-02-21 11:43:45 +01:00
scsi-parameters.txt scsi: delete the MCA specific drivers and driver code 2012-05-17 19:03:54 -04:00
scsi.txt Documentation: update broken web addresses. 2010-08-04 15:21:40 +02:00
scsi_eh.txt scsi: fix race between simultaneous decrements of ->host_failed 2016-07-10 20:19:54 -04:00
scsi_fc_transport.txt Fix common misspellings 2011-03-31 11:26:23 -03:00
scsi_mid_low_api.txt scsi: drop reason argument from ->change_queue_depth 2014-11-24 14:45:27 +01:00
st.txt st: add a debug_flag module parameter request 2014-11-12 11:15:55 +01:00
sym53c8xx_2.txt Documentation: fix minor typos/spelling 2011-04-04 17:51:47 -07:00
sym53c500_cs.txt
tmscsim.txt genirq: Remove the deprecated 'IRQF_DISABLED' request_irq() flag entirely 2015-03-05 20:53:06 +01:00
ufs.txt [SCSI] ufshcd: UFS Host controller driver 2012-03-27 08:26:28 +01:00
wd719x.txt wd719x: Add firmware documentation 2014-11-25 15:42:55 +01:00