[PATCH 2/8] lpfc: Wait for successful restart of SLI3 adapter during host sg_reset

James Smart
2021-10-20T21:14:28Z

A prior patch introduced HBA_NEEDS_CFG_PORT flag logic, but in
lpfc_sli_brdrestart_s3 code path, right after HBA_NEEDS_CFG_PORT is set,
the phba->hba_flag is cleared in lpfc_sli_brdreset.

Fix by calling lpfc_sli_chipset_init to wait for successful restart of
the HBA in lpfc_host_reset_handler after lpfc_sli_brdrestart.

lpfc_sli_chipset_init sets the HBA_NEEDS_CFG_PORT flag so that the
lpfc_sli_hba_setup routine from lpfc_online will execute
lpfc_sli_config_port initialization step when the brdrestart is
successful.

Fixes: d2f2547efd39 ("scsi: lpfc: Fix auto sli_mode and its effect on CONFIG_PORT for SLI3")
Co-developed-by: Justin Tee <justin.tee@broadcom.com>
Signed-off-by: Justin Tee <justin.tee@broadcom.com>
Signed-off-by: James Smart <jsmart2021@gmail.com>
---
drivers/scsi/lpfc/lpfc_scsi.c | 7 +++++++
1 file changed, 7 insertions(+)

diff --git a/drivers/scsi/lpfc/lpfc_scsi.c b/drivers/scsi/lpfc/lpfc_scsi.c
index f35246024988..0dce4b51ca1e 100644
--- a/drivers/scsi/lpfc/lpfc_scsi.c
+++ b/drivers/scsi/lpfc/lpfc_scsi.c
@@ -6648,6 +6648,13 @@ lpfc_host_reset_handler(struct scsi_cmnd *cmnd)
if (rc)
goto error;

+ /* Wait for successful restart of adapter */
+ if (phba->sli_rev < LPFC_SLI_REV4) {
+ rc = lpfc_sli_chipset_init(phba);
+ if (rc)
+ goto error;
+ }
+
rc = lpfc_online(phba);
if (rc)
goto error;
--
2.26.2