diff options
Diffstat (limited to 'drivers/scsi')
-rw-r--r-- | drivers/scsi/qla4xxx/ql4_os.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/drivers/scsi/qla4xxx/ql4_os.c b/drivers/scsi/qla4xxx/ql4_os.c index 56962e52f11..a6455fbe4f4 100644 --- a/drivers/scsi/qla4xxx/ql4_os.c +++ b/drivers/scsi/qla4xxx/ql4_os.c | |||
@@ -1102,7 +1102,8 @@ static int qla4xxx_recover_adapter(struct scsi_qla_host *ha) | |||
1102 | ha->host_no, __func__)); | 1102 | ha->host_no, __func__)); |
1103 | status = ha->isp_ops->reset_firmware(ha); | 1103 | status = ha->isp_ops->reset_firmware(ha); |
1104 | if (status == QLA_SUCCESS) { | 1104 | if (status == QLA_SUCCESS) { |
1105 | qla4xxx_cmd_wait(ha); | 1105 | if (!test_bit(AF_FW_RECOVERY, &ha->flags)) |
1106 | qla4xxx_cmd_wait(ha); | ||
1106 | ha->isp_ops->disable_intrs(ha); | 1107 | ha->isp_ops->disable_intrs(ha); |
1107 | qla4xxx_process_aen(ha, FLUSH_DDB_CHANGED_AENS); | 1108 | qla4xxx_process_aen(ha, FLUSH_DDB_CHANGED_AENS); |
1108 | qla4xxx_abort_active_cmds(ha, DID_RESET << 16); | 1109 | qla4xxx_abort_active_cmds(ha, DID_RESET << 16); |
@@ -1119,7 +1120,8 @@ static int qla4xxx_recover_adapter(struct scsi_qla_host *ha) | |||
1119 | * or if stop_firmware fails for ISP-82xx. | 1120 | * or if stop_firmware fails for ISP-82xx. |
1120 | * This is the default case for ISP-4xxx */ | 1121 | * This is the default case for ISP-4xxx */ |
1121 | if (!is_qla8022(ha) || reset_chip) { | 1122 | if (!is_qla8022(ha) || reset_chip) { |
1122 | qla4xxx_cmd_wait(ha); | 1123 | if (!test_bit(AF_FW_RECOVERY, &ha->flags)) |
1124 | qla4xxx_cmd_wait(ha); | ||
1123 | qla4xxx_process_aen(ha, FLUSH_DDB_CHANGED_AENS); | 1125 | qla4xxx_process_aen(ha, FLUSH_DDB_CHANGED_AENS); |
1124 | qla4xxx_abort_active_cmds(ha, DID_RESET << 16); | 1126 | qla4xxx_abort_active_cmds(ha, DID_RESET << 16); |
1125 | DEBUG2(ql4_printk(KERN_INFO, ha, | 1127 | DEBUG2(ql4_printk(KERN_INFO, ha, |