scsi: aacraid: Skip IOP reset on controller panic(SMART Family)
authorRaghava Aditya Renukunta <RaghavaAditya.Renukunta@microsemi.com>
Thu, 16 Feb 2017 20:51:20 +0000 (12:51 -0800)
committerMartin K. Petersen <martin.petersen@oracle.com>
Wed, 22 Feb 2017 23:41:42 +0000 (18:41 -0500)
When the SMART family of controller panic (KERNEL_PANIC) , they do not
honor IOP resets. So better to skip it and directly perform a IWBR reset.

Signed-off-by: Raghava Aditya Renukunta <RaghavaAditya.Renukunta@microsemi.com>
Reviewed-by: David Carroll <David.Carroll@microsemi.com>
Reviewed-by: Johannes Thumshirn <jthumshirn@suse.de>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/scsi/aacraid/src.c

index b23c818adbf68e0f99b582cb7026870ca1feb4f9..9b11e1a6cc75912f70c794270f39d41880fc9ede 100644 (file)
@@ -714,6 +714,12 @@ static int aac_src_restart_adapter(struct aac_dev *dev, int bled, u8 reset_type)
                pr_err("%s%d: adapter kernel panic'd %x.\n",
                                dev->name, dev->id, bled);
 
+       /*
+        * When there is a BlinkLED, IOP_RESET has not effect
+        */
+       if (bled >= 2 && dev->sa_firmware && reset_type & HW_IOP_RESET)
+               reset_type &= ~HW_IOP_RESET;
+
        dev->a_ops.adapter_enable_int = aac_src_disable_interrupt;
 
        switch (reset_type) {