summaryrefslogtreecommitdiffstats
path: root/drivers/scsi/lpfc
diff options
context:
space:
mode:
authorJames Smart <jsmart2021@gmail.com>2021-12-03 16:26:38 -0800
committerMartin K. Petersen <martin.petersen@oracle.com>2021-12-06 22:35:36 -0500
commit7576d48c64f36f6fea9df2882f710a474fa35f40 (patch)
tree680c1a131575fd7a97e992266896b51c4734b15a /drivers/scsi/lpfc
parent2e81b1a374da5d6024208c16c4a5224a70cafa64 (diff)
downloadlinux-stable-7576d48c64f36f6fea9df2882f710a474fa35f40.tar.gz
linux-stable-7576d48c64f36f6fea9df2882f710a474fa35f40.tar.bz2
linux-stable-7576d48c64f36f6fea9df2882f710a474fa35f40.zip
scsi: lpfc: Fix lpfc_force_rscn ndlp kref imbalance
Issuing lpfc_force_rscn twice results in an ndlp kref use-after-free call trace. A prior patch reworked the get/put handling by ensuring nlp_get was done before WQE submission and a put was done in the completion path. Unfortunately, the issue_els_rscn path had a piece of legacy code that did a nlp_put, causing an imbalance on the ref counts. Fixed by removing the unnecessary legacy code snippet. Link: https://lore.kernel.org/r/20211204002644.116455-4-jsmart2021@gmail.com Fixes: 4430f7fd09ec ("scsi: lpfc: Rework locations of ndlp reference taking") Cc: <stable@vger.kernel.org> # v5.11+ 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> Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Diffstat (limited to 'drivers/scsi/lpfc')
-rw-r--r--drivers/scsi/lpfc/lpfc_els.c5
1 files changed, 0 insertions, 5 deletions
diff --git a/drivers/scsi/lpfc/lpfc_els.c b/drivers/scsi/lpfc/lpfc_els.c
index 67335aae683e..ba90ece8b81e 100644
--- a/drivers/scsi/lpfc/lpfc_els.c
+++ b/drivers/scsi/lpfc/lpfc_els.c
@@ -3538,11 +3538,6 @@ lpfc_issue_els_rscn(struct lpfc_vport *vport, uint8_t retry)
return 1;
}
- /* This will cause the callback-function lpfc_cmpl_els_cmd to
- * trigger the release of node.
- */
- if (!(vport->fc_flag & FC_PT2PT))
- lpfc_nlp_put(ndlp);
return 0;
}