Patch "scsi: aacraid: Add a small delay after IOP reset" has been added to the 4.13-stable tree
Subsystems (3)
This is a note to let you know that I've just added the patch titled
scsi: aacraid: Add a small delay after IOP reset
to the 4.13-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
scsi-aacraid-add-a-small-delay-after-iop-reset.patch
and it can be found in the queue-4.13 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Quoted 1 line
From
d1b490939d8c117a06dfc562c41d933f71d30289Mon Sep 17 00:00:00 2001
From: "Guilherme G. Piccoli" <[email protected]>
Date: Tue, 19 Sep 2017 12:11:55 -0300
Subject: scsi: aacraid: Add a small delay after IOP reset
From: Guilherme G. Piccoli <[email protected]>
commit d1b490939d8c117a06dfc562c41d933f71d30289 upstream.
Commit 0e9973ed3382 ("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
--- drivers/scsi/aacraid/src.c | 2 ++ 1 file changed, 2 insertions(+)
drivers/scsi/aacraid/src.c +2 -0
@@ -740,6 +740,8 @@ static void aac_send_iop_reset(struct aaaac_set_intx_mode (dev);src_writel (dev, MUnit.IDR,IOP_SRC_RESET_MASK ); + +msleep (5000 ); }static void aac_send_hardware_soft_reset (struct aac_dev *dev)
Patches currently in stable-queue which might be from [email protected] are
queue-4.13/scsi-aacraid-add-a-small-delay-after-iop-reset.patch