Patch "scsi: lpfc: Fix SLI3 hba in loop mode not discovering devices" has been added to the 4.19-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    scsi: lpfc: Fix SLI3 hba in loop mode not discovering devices

to the 4.19-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     scsi-lpfc-fix-sli3-hba-in-loop-mode-not-discovering-.patch
and it can be found in the queue-4.19 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit f371748464d6e2c08844220c11947997f7b28410
Author: James Smart <jsmart2021@xxxxxxxxx>
Date:   Fri Oct 18 14:18:20 2019 -0700

    scsi: lpfc: Fix SLI3 hba in loop mode not discovering devices
    
    [ Upstream commit feff8b3d84d3d9570f893b4d83e5eab6693d6a52 ]
    
    When operating in private loop mode, PLOGI exchanges are racing and the
    driver tries to abort it's PLOGI. But the PLOGI abort ends up terminating
    the login with the other end causing the other end to abort its PLOGI as
    well. Discovery never fully completes.
    
    Fix by disabling the PLOGI abort when private loop and letting the state
    machine play out.
    
    Link: https://lore.kernel.org/r/20191018211832.7917-5-jsmart2021@xxxxxxxxx
    Signed-off-by: Dick Kennedy <dick.kennedy@xxxxxxxxxxxx>
    Signed-off-by: James Smart <jsmart2021@xxxxxxxxx>
    Signed-off-by: Martin K. Petersen <martin.petersen@xxxxxxxxxx>
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/drivers/scsi/lpfc/lpfc_nportdisc.c b/drivers/scsi/lpfc/lpfc_nportdisc.c
index bd8dc6a2243c..3dfed191252c 100644
--- a/drivers/scsi/lpfc/lpfc_nportdisc.c
+++ b/drivers/scsi/lpfc/lpfc_nportdisc.c
@@ -483,8 +483,10 @@ lpfc_rcv_plogi(struct lpfc_vport *vport, struct lpfc_nodelist *ndlp,
 	 * single discovery thread, this will cause a huge delay in
 	 * discovery. Also this will cause multiple state machines
 	 * running in parallel for this node.
+	 * This only applies to a fabric environment.
 	 */
-	if (ndlp->nlp_state == NLP_STE_PLOGI_ISSUE) {
+	if ((ndlp->nlp_state == NLP_STE_PLOGI_ISSUE) &&
+	    (vport->fc_flag & FC_FABRIC)) {
 		/* software abort outstanding PLOGI */
 		lpfc_els_abort(phba, ndlp);
 	}



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux