qlge: Improve handling for firmware init failure.
This event will arrive at boot time or after an MPI processor reset if the firmware failed to initialize. Signed-off-by: Ron Mercer <ron.mercer@qlogic.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
f56b54f542
commit
7c92191cb4
|
@ -395,7 +395,25 @@ static int ql_mpi_handler(struct ql_adapter *qdev, struct mbox_params *mbcp)
|
||||||
ql_sfp_out(qdev, mbcp);
|
ql_sfp_out(qdev, mbcp);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
/* This event can arrive at boot time or after an
|
||||||
|
* MPI reset if the firmware failed to initialize.
|
||||||
|
*/
|
||||||
case AEN_FW_INIT_FAIL:
|
case AEN_FW_INIT_FAIL:
|
||||||
|
/* If we're in process on executing the firmware,
|
||||||
|
* then convert the status to normal mailbox status.
|
||||||
|
*/
|
||||||
|
if (mbcp->mbox_in[0] == MB_CMD_EX_FW) {
|
||||||
|
mbcp->out_count = orig_count;
|
||||||
|
status = ql_get_mb_sts(qdev, mbcp);
|
||||||
|
mbcp->mbox_out[0] = MB_CMD_STS_ERR;
|
||||||
|
return status;
|
||||||
|
}
|
||||||
|
QPRINTK(qdev, DRV, ERR,
|
||||||
|
"Firmware initialization failed.\n");
|
||||||
|
status = -EIO;
|
||||||
|
ql_queue_fw_error(qdev);
|
||||||
|
break;
|
||||||
|
|
||||||
case AEN_SYS_ERR:
|
case AEN_SYS_ERR:
|
||||||
ql_queue_fw_error(qdev);
|
ql_queue_fw_error(qdev);
|
||||||
break;
|
break;
|
||||||
|
|
Loading…
Reference in New Issue