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.renuku...@microsemi.com>
Reviewed-by: David Carroll <david.carr...@microsemi.com>
---
 drivers/scsi/aacraid/src.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/drivers/scsi/aacraid/src.c b/drivers/scsi/aacraid/src.c
index b23c818..5bb9865 100644
--- a/drivers/scsi/aacraid/src.c
+++ b/drivers/scsi/aacraid/src.c
@@ -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) {
-- 
2.7.4

Reply via email to