]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
scsi: lpfc: Ensure HBA_SETUP flag is used only for SLI4 in dev_loss_tmo_callbk
authorJustin Tee <justin.tee@broadcom.com>
Wed, 18 Jun 2025 19:21:33 +0000 (12:21 -0700)
committerMartin K. Petersen <martin.petersen@oracle.com>
Mon, 23 Jun 2025 17:10:33 +0000 (13:10 -0400)
For SLI3, the HBA_SETUP flag is never set so the lpfc_dev_loss_tmo_callbk
always early returns.  Add a phba->sli_rev check for SLI4 mode so that
the SLI3 path can flow through the original dev_loss_tmo worker thread
design to lpfc_dev_loss_tmo_handler instead of early return.

Signed-off-by: Justin Tee <justin.tee@broadcom.com>
Link: https://lore.kernel.org/r/20250618192138.124116-9-justintee8345@gmail.com
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/scsi/lpfc/lpfc_hbadisc.c

index 690eacc5f739764f30fb4a3bd2bc29ce3a116789..43d246c5c049cb3a7a7cf0e24e3fca17f769d6c2 100644 (file)
@@ -183,7 +183,8 @@ lpfc_dev_loss_tmo_callbk(struct fc_rport *rport)
 
        /* Don't schedule a worker thread event if the vport is going down. */
        if (test_bit(FC_UNLOADING, &vport->load_flag) ||
-           !test_bit(HBA_SETUP, &phba->hba_flag)) {
+           (phba->sli_rev == LPFC_SLI_REV4 &&
+           !test_bit(HBA_SETUP, &phba->hba_flag))) {
 
                spin_lock_irqsave(&ndlp->lock, iflags);
                ndlp->rport = NULL;