scsi: lpfc: Convert bootstrap mbx polling from msleep to udelay
Current code is using msleep when polling for hw ready. Unfortunately the msleep routine isn't very accurate on rescheduling. In fact, on a busy systems which reset the adapter, it became 10s of seconds before it was rescheduled. Fix by busy waiting using udelay. As we're now busy waiting, significantly reduce the wait time so that we can exit the pool loop as soon as possible. Signed-off-by: Dick Kennedy <dick.kennedy@broadcom.com> Signed-off-by: James Smart <jsmart2021@gmail.com> Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
This commit is contained in:
parent
4645f7b56a
commit
e2ffe4d5dc
|
@ -8507,7 +8507,7 @@ lpfc_sli4_wait_bmbx_ready(struct lpfc_hba *phba, LPFC_MBOXQ_t *mboxq)
|
|||
bmbx_reg.word0 = readl(phba->sli4_hba.BMBXregaddr);
|
||||
db_ready = bf_get(lpfc_bmbx_rdy, &bmbx_reg);
|
||||
if (!db_ready)
|
||||
msleep(2);
|
||||
mdelay(2);
|
||||
|
||||
if (time_after(jiffies, timeout))
|
||||
return MBXERR_ERROR;
|
||||
|
|
Loading…
Reference in New Issue