Skip to content

Commit

Permalink
qlge: Improve handling for firmware init failure.
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Ron Mercer authored and David S. Miller committed Mar 4, 2009
1 parent f56b54f commit 7c92191
Showing 1 changed file with 18 additions and 0 deletions.
18 changes: 18 additions & 0 deletions drivers/net/qlge/qlge_mpi.c
Original file line number Diff line number Diff line change
Expand Up @@ -395,7 +395,25 @@ static int ql_mpi_handler(struct ql_adapter *qdev, struct mbox_params *mbcp)
ql_sfp_out(qdev, mbcp);
break;

/* This event can arrive at boot time or after an
* MPI reset if the firmware failed to initialize.
*/
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:
ql_queue_fw_error(qdev);
break;
Expand Down

0 comments on commit 7c92191

Please sign in to comment.