summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorQuinn Tran <qutran@marvell.com>2022-01-09 21:02:08 -0800
committerMartin K. Petersen <martin.petersen@oracle.com>2022-01-24 23:57:30 -0500
commit355f5ffe840a1d22f8d6ff4c838190b8e89f8912 (patch)
tree9f56f1fb3731e6488bb53f8a67cb585f73fad89d
parentafd438ff874ca40b74321b3fa19bd61adfd7ca0c (diff)
downloadlinux-355f5ffe840a1d22f8d6ff4c838190b8e89f8912.tar.bz2
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 <himanshu.madhani@oracle.com> Signed-off-by: Quinn Tran <qutran@marvell.com> Signed-off-by: Nilesh Javali <njavali@marvell.com> Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
-rw-r--r--drivers/scsi/qla2xxx/qla_mbx.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/drivers/scsi/qla2xxx/qla_mbx.c b/drivers/scsi/qla2xxx/qla_mbx.c
index 38e0f02c75e1..c4bd8a16d78c 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++;