Commit 03d32f97 authored by Tej Prakash's avatar Tej Prakash Committed by Christoph Hellwig

qla2xxx: Don't check for firmware hung during the reset context for ISP82XX.

Signed-off-by: default avatarTej Prakash <tej.prakash@qlogic.com>
Signed-off-by: default avatarSaurav Kashyap <saurav.kashyap@qlogic.com>
Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
parent 638a1a01
...@@ -2852,47 +2852,30 @@ static int ...@@ -2852,47 +2852,30 @@ static int
qla82xx_device_bootstrap(scsi_qla_host_t *vha) qla82xx_device_bootstrap(scsi_qla_host_t *vha)
{ {
int rval = QLA_SUCCESS; int rval = QLA_SUCCESS;
int i, timeout; int i;
uint32_t old_count, count; uint32_t old_count, count;
struct qla_hw_data *ha = vha->hw; struct qla_hw_data *ha = vha->hw;
int need_reset = 0, peg_stuck = 1; int need_reset = 0;
need_reset = qla82xx_need_reset(ha); need_reset = qla82xx_need_reset(ha);
old_count = qla82xx_rd_32(ha, QLA82XX_PEG_ALIVE_COUNTER);
for (i = 0; i < 10; i++) {
timeout = msleep_interruptible(200);
if (timeout) {
qla82xx_wr_32(ha, QLA82XX_CRB_DEV_STATE,
QLA8XXX_DEV_FAILED);
return QLA_FUNCTION_FAILED;
}
count = qla82xx_rd_32(ha, QLA82XX_PEG_ALIVE_COUNTER);
if (count != old_count)
peg_stuck = 0;
}
if (need_reset) { if (need_reset) {
/* We are trying to perform a recovery here. */ /* We are trying to perform a recovery here. */
if (peg_stuck) if (ha->flags.isp82xx_fw_hung)
qla82xx_rom_lock_recovery(ha); qla82xx_rom_lock_recovery(ha);
goto dev_initialize;
} else { } else {
/* Start of day for this ha context. */ old_count = qla82xx_rd_32(ha, QLA82XX_PEG_ALIVE_COUNTER);
if (peg_stuck) { for (i = 0; i < 10; i++) {
/* Either we are the first or recovery in progress. */ msleep(200);
qla82xx_rom_lock_recovery(ha); count = qla82xx_rd_32(ha, QLA82XX_PEG_ALIVE_COUNTER);
goto dev_initialize; if (count != old_count) {
} else rval = QLA_SUCCESS;
/* Firmware already running. */ goto dev_ready;
goto dev_ready; }
}
qla82xx_rom_lock_recovery(ha);
} }
return rval;
dev_initialize:
/* set to DEV_INITIALIZING */ /* set to DEV_INITIALIZING */
ql_log(ql_log_info, vha, 0x009e, ql_log(ql_log_info, vha, 0x009e,
"HW State: INITIALIZING.\n"); "HW State: INITIALIZING.\n");
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment