OpenCloudOS-Kernel/drivers/scsi/aacraid
Guilherme G. Piccoli d1b490939d scsi: aacraid: Add a small delay after IOP reset
Commit 0e9973ed33 ("scsi: aacraid: Add periodic checks to see IOP reset
status") changed the way driver checks if a reset succeeded. Now, after an
IOP reset, aacraid immediately start polling a register to verify the reset
is complete.

This behavior cause regressions on the reset path in PowerPC (at least).
Since the delay after the IOP reset was removed by the aforementioned patch,
the fact driver just starts to read a register instantly after the reset
was issued (by writing in another register) "corrupts" the reset procedure,
which ends up failing all the time.

The issue highly impacted kdump on PowerPC, since on kdump path we
proactively issue a reset in adapter (through the reset_devices kernel
parameter).

This patch (re-)adds a delay right after IOP reset is issued. Empirically
we measured that 3 seconds is enough, but for safety reasons we delay
for 5s (and since it was 30s before, 5s is still a small amount).

For reference, without this patch we observe the following messages
on kdump kernel boot process:

  [ 76.294] aacraid 0003:01:00.0: IOP reset failed
  [ 76.294] aacraid 0003:01:00.0: ARC Reset attempt failed
  [ 86.524] aacraid 0003:01:00.0: adapter kernel panic'd ff.
  [ 86.524] aacraid 0003:01:00.0: Controller reset type is 3
  [ 86.524] aacraid 0003:01:00.0: Issuing IOP reset
  [146.534] aacraid 0003:01:00.0: IOP reset failed
  [146.534] aacraid 0003:01:00.0: ARC Reset attempt failed

Fixes: 0e9973ed33 ("scsi: aacraid: Add periodic checks to see IOP reset status")
Cc: stable@vger.kernel.org # v4.13+
Signed-off-by: Guilherme G. Piccoli <gpiccoli@linux.vnet.ibm.com>
Acked-by: Dave Carroll <david.carroll@microsemi.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
2017-09-27 21:42:14 -04:00
..
Makefile [SCSI] aacraid: Add new code for PMC-Sierra's SRC based controller family 2011-03-23 11:36:58 -05:00
TODO
aachba.c scsi: aacraid: Fix 2T+ drives on SmartIOC-2000 2017-09-15 15:49:43 -04:00
aacraid.h scsi: aacraid: Fix 2T+ drives on SmartIOC-2000 2017-09-15 15:49:43 -04:00
commctrl.c scsi: aacraid: Don't copy uninitialized stack memory to userspace 2017-06-26 15:01:03 -04:00
comminit.c scsi: aacraid: fix indentation errors 2017-08-30 21:56:00 -04:00
commsup.c scsi: aacraid: add fib flag to mark scsi command callback 2017-08-07 14:04:00 -04:00
dpcsup.c scsi: aacraid: Update copyrights 2017-02-03 10:35:04 -05:00
linit.c scsi: aacraid: error: testing array offset 'bus' after use 2017-09-15 21:46:07 -04:00
nark.c scsi: aacraid: Update copyrights 2017-02-03 10:35:04 -05:00
rkt.c scsi: aacraid: Update copyrights 2017-02-03 10:35:04 -05:00
rx.c scsi: aacraid: pci_alloc_consistent() failures on ARM64 2017-04-26 18:28:06 -04:00
sa.c scsi: aacraid: Update copyrights 2017-02-03 10:35:04 -05:00
src.c scsi: aacraid: Add a small delay after IOP reset 2017-09-27 21:42:14 -04:00