Mauricio Faria de Oliveira c733ab3512 scsi: qla2xxx: do not abort all commands in the adapter during EEH recovery
The previous commit 1535aa75a3d8 ("qla2xxx: fix invalid DMA access after
command aborts in PCI device remove") introduced a regression during an
EEH recovery, since the change to the qla2x00_abort_all_cmds() function
calls qla2xxx_eh_abort(), which verifies the EEH recovery condition but
handles it heavy-handed. (commit a465537ad1a4 "qla2xxx: Disable the
adapter and skip error recovery in case of register disconnect.")

This problem warrants a more general/optimistic solution right into
qla2xxx_eh_abort() (eg in case a real command abort arrives during EEH
recovery, or if it takes long enough to trigger command aborts); but
it's still worth to add a check to ensure the code added by the previous
commit is correct and contained within its owner function.

This commit just adds a 'if (!ha->flags.eeh_busy)' check around it.
(ahem; a trivial fix for this -rc series; sorry for this oversight.)

With it applied, both PCI device remove and EEH recovery works fine.

Fixes: 1535aa75a3d8 ("scsi: qla2xxx: fix invalid DMA access after command aborts in PCI device remove")
Signed-off-by: Mauricio Faria de Oliveira <mauricfo@linux.vnet.ibm.com>
Acked-by: Himanshu Madhani <himanshu.madhani@cavium.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
2016-11-14 18:38:10 -05:00
..
2016-10-07 09:28:53 -07:00
2016-02-23 21:27:02 -05:00
2016-10-07 09:28:53 -07:00
2016-07-27 14:48:37 -07:00
2016-07-20 17:38:35 -06:00
2015-04-27 10:10:19 -07:00
2015-04-27 10:04:39 -07:00
2015-04-27 10:04:39 -07:00
2015-04-27 10:05:55 -07:00
2015-12-03 09:32:33 -08:00
2015-04-17 10:13:56 -07:00
2015-11-25 22:08:55 -05:00
2016-02-23 21:27:02 -05:00
2014-07-17 22:07:37 +02:00
2016-05-10 22:01:07 -04:00
2015-11-09 17:11:57 -08:00
2014-11-24 16:13:16 +01:00
2015-11-09 16:32:14 -08:00
2016-10-07 09:28:53 -07:00
2016-02-25 21:10:53 -05:00
2016-10-14 16:26:31 -04:00
2015-06-02 17:24:54 -07:00
2016-01-27 20:36:10 +08:00
2016-09-26 20:49:25 -04:00
2016-01-27 20:36:10 +08:00
2016-09-26 20:49:25 -04:00
2014-07-17 22:07:35 +02:00
2014-11-24 20:01:28 +01:00
2016-02-23 21:27:02 -05:00
2016-09-15 08:42:03 -06:00
2016-10-07 09:28:53 -07:00
2016-02-23 21:27:02 -05:00
2014-07-17 22:07:39 +02:00
2016-09-04 01:28:08 -04:00
2014-11-12 11:15:57 +01:00
2016-04-25 22:08:16 -04:00
2015-11-18 11:59:09 -05:00
2016-02-23 21:27:02 -05:00
2014-11-20 09:11:15 +01:00
2016-10-07 09:28:53 -07:00