summaryrefslogtreecommitdiff
path: root/drivers/scsi
diff options
context:
space:
mode:
authorArmen Baloyan <armen.baloyan@qlogic.com>2013-08-27 09:37:32 +0400
committerJames Bottomley <JBottomley@Parallels.com>2013-09-03 18:28:01 +0400
commite601d778d525cc82fb7339be3fdf23a2c87e69a9 (patch)
treef97003c0a68d22429797dc1f991edf0d10a1b83d /drivers/scsi
parentb6511d9976fdcfbe98943ed68fb671548fd148f8 (diff)
downloadlinux-e601d778d525cc82fb7339be3fdf23a2c87e69a9.tar.xz
[SCSI] qla2xxx: Perform warm reset every 2 minutes if firmware load fails for ISPFX00.
Signed-off-by: Armen Baloyan <armen.baloyan@qlogic.com> Acked-by: Srinivasa Rao <srinivasa.rao@qlogic.com> Signed-off-by: Saurav Kashyap <saurav.kashyap@qlogic.com> Signed-off-by: James Bottomley <JBottomley@Parallels.com>
Diffstat (limited to 'drivers/scsi')
-rw-r--r--drivers/scsi/qla2xxx/qla_mr.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/drivers/scsi/qla2xxx/qla_mr.c b/drivers/scsi/qla2xxx/qla_mr.c
index 7136bf5d1c86..1aeb9e12c38b 100644
--- a/drivers/scsi/qla2xxx/qla_mr.c
+++ b/drivers/scsi/qla2xxx/qla_mr.c
@@ -1606,6 +1606,14 @@ qlafx00_abort_isp(scsi_qla_host_t *vha)
scsi_block_requests(vha->host);
qlafx00_abort_isp_cleanup(vha);
+ } else {
+ scsi_block_requests(vha->host);
+ clear_bit(ISP_ABORT_NEEDED, &vha->dpc_flags);
+ vha->qla_stats.total_isp_aborts++;
+ ha->isp_ops->reset_chip(vha);
+ set_bit(FX00_RESET_RECOVERY, &vha->dpc_flags);
+ /* Clear the Interrupts */
+ QLAFX00_CLR_INTR_REG(ha, QLAFX00_HST_INT_STS_BITS);
}
ql_log(ql_log_info, vha, 0x0145,