From: Quinn Tran Date: Mon, 10 Jan 2022 05:02:08 +0000 (-0800) Subject: scsi: qla2xxx: Add retry for exec firmware X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=355f5ffe840a1d22f8d6ff4c838190b8e89f8912;p=linux.git scsi: qla2xxx: Add retry for exec firmware Per FW request, Exec FW can fail due to temporary error resulting in driver not attaching to the adapter. Add retry of this command up to 4 retries. Link: https://lore.kernel.org/r/20220110050218.3958-8-njavali@marvell.com Reviewed-by: Himanshu Madhani Signed-off-by: Quinn Tran Signed-off-by: Nilesh Javali Signed-off-by: Martin K. Petersen --- diff --git a/drivers/scsi/qla2xxx/qla_mbx.c b/drivers/scsi/qla2xxx/qla_mbx.c index 38e0f02c75e1d..c4bd8a16d78c1 100644 --- a/drivers/scsi/qla2xxx/qla_mbx.c +++ b/drivers/scsi/qla2xxx/qla_mbx.c @@ -689,7 +689,7 @@ qla2x00_execute_fw(scsi_qla_host_t *vha, uint32_t risc_addr) mbx_cmd_t *mcp = &mc; u8 semaphore = 0; #define EXE_FW_FORCE_SEMAPHORE BIT_7 - u8 retry = 3; + u8 retry = 5; ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x1025, "Entered %s.\n", __func__); @@ -764,6 +764,12 @@ again: goto again; } + if (retry) { + retry--; + ql_dbg(ql_dbg_async, vha, 0x509d, + "Exe FW retry: mb[0]=%x retry[%d]\n", mcp->mb[0], retry); + goto again; + } ql_dbg(ql_dbg_mbx, vha, 0x1026, "Failed=%x mb[0]=%x.\n", rval, mcp->mb[0]); vha->hw_err_cnt++;