linux-scsi.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] lpfc: Fix nonrecovery of remote ports following an unsolicited LOGO
@ 2021-11-23 16:56 James Smart
  2021-11-30  4:37 ` Martin K. Petersen
  0 siblings, 1 reply; 2+ messages in thread
From: James Smart @ 2021-11-23 16:56 UTC (permalink / raw)
  To: linux-scsi; +Cc: James Smart, stable, Paul Ely

A commit introduced formal regstration of all Fabric nodes to the SCSI
transport as well as REG/UNREG RPI mailbox requests. The commit
introduced the NLP_RELEASE_RPI flag for rports  set in the
lpfc_cmpl_els_logo_acc() routine to help clean up the RPIs. This new
code caused the driver to release the RPI value used for the remote port
and marked the RPI invalid.  When the driver later attempted to re-login,
it would use the invalid RPI and the adapter rejected the PLOGI request.
As no login occurred, the devloss timer on the rport expired and
connectivity was lost.

This patch corrects the code by removing the snippet that requests the
rpi to be unregistered. This change only occurs on a node that is already
marked to be rediscovered. This puts the code back to its original
behavior, preserving the already-assigned rpi value (registered or not)
which can be used on the re-login attempts.

Fixes: fe83e3b9b422 ("scsi: lpfc: Fix node handling for Fabric Controller and Domain Controller")
Cc: <stable@vger.kernel.org> # v5.14+
Co-developed-by: Paul Ely <paul.ely@broadcom.com>
Signed-off-by: Paul Ely <paul.ely@broadcom.com>
Signed-off-by: James Smart <jsmart2021@gmail.com>
---
 drivers/scsi/lpfc/lpfc_els.c | 9 ++-------
 1 file changed, 2 insertions(+), 7 deletions(-)

diff --git a/drivers/scsi/lpfc/lpfc_els.c b/drivers/scsi/lpfc/lpfc_els.c
index b940e0268f96..e83453bea2ae 100644
--- a/drivers/scsi/lpfc/lpfc_els.c
+++ b/drivers/scsi/lpfc/lpfc_els.c
@@ -5095,14 +5095,9 @@ lpfc_cmpl_els_logo_acc(struct lpfc_hba *phba, struct lpfc_iocbq *cmdiocb,
 		/* NPort Recovery mode or node is just allocated */
 		if (!lpfc_nlp_not_used(ndlp)) {
 			/* A LOGO is completing and the node is in NPR state.
-			 * If this a fabric node that cleared its transport
-			 * registration, release the rpi.
+			 * Just unregister the RPI because the node is still
+			 * required.
 			 */
-			spin_lock_irq(&ndlp->lock);
-			ndlp->nlp_flag &= ~NLP_NPR_2B_DISC;
-			if (phba->sli_rev == LPFC_SLI_REV4)
-				ndlp->nlp_flag |= NLP_RELEASE_RPI;
-			spin_unlock_irq(&ndlp->lock);
 			lpfc_unreg_rpi(vport, ndlp);
 		} else {
 			/* Indicate the node has already released, should
-- 
2.26.2


^ permalink raw reply related	[flat|nested] 2+ messages in thread

* Re: [PATCH] lpfc: Fix nonrecovery of remote ports following an unsolicited LOGO
  2021-11-23 16:56 [PATCH] lpfc: Fix nonrecovery of remote ports following an unsolicited LOGO James Smart
@ 2021-11-30  4:37 ` Martin K. Petersen
  0 siblings, 0 replies; 2+ messages in thread
From: Martin K. Petersen @ 2021-11-30  4:37 UTC (permalink / raw)
  To: linux-scsi, James Smart; +Cc: Martin K . Petersen, Paul Ely, stable

On Tue, 23 Nov 2021 08:56:46 -0800, James Smart wrote:

> A commit introduced formal regstration of all Fabric nodes to the SCSI
> transport as well as REG/UNREG RPI mailbox requests. The commit
> introduced the NLP_RELEASE_RPI flag for rports  set in the
> lpfc_cmpl_els_logo_acc() routine to help clean up the RPIs. This new
> code caused the driver to release the RPI value used for the remote port
> and marked the RPI invalid.  When the driver later attempted to re-login,
> it would use the invalid RPI and the adapter rejected the PLOGI request.
> As no login occurred, the devloss timer on the rport expired and
> connectivity was lost.
> 
> [...]

Applied to 5.16/scsi-fixes, thanks!

[1/1] lpfc: Fix nonrecovery of remote ports following an unsolicited LOGO
      https://git.kernel.org/mkp/scsi/c/0956ba63bd94

-- 
Martin K. Petersen	Oracle Linux Engineering

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2021-11-30  4:37 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-11-23 16:56 [PATCH] lpfc: Fix nonrecovery of remote ports following an unsolicited LOGO James Smart
2021-11-30  4:37 ` Martin K. Petersen

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).