Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 7c92191c authored by Ron Mercer's avatar Ron Mercer Committed by David S. Miller
Browse files

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: default avatarRon Mercer <ron.mercer@qlogic.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent f56b54f5
Loading
Loading
Loading
Loading
+18 −0
Original line number Diff line number Diff line
@@ -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;