From: James Smart <jsmart2021@gmail.com>
To: linux-scsi@vger.kernel.org
Cc: James Smart <jsmart2021@gmail.com>,
Dick Kennedy <dick.kennedy@broadcom.com>
Subject: [PATCH 01/11] lpfc: Fix duplicate unreg_rpi error in port offline flow
Date: Mon, 4 Nov 2019 16:56:58 -0800 [thread overview]
Message-ID: <20191105005708.7399-2-jsmart2021@gmail.com> (raw)
In-Reply-To: <20191105005708.7399-1-jsmart2021@gmail.com>
If the driver receives a login that is later then LOGO'd by the remote
port (aka ndlp), the driver, upon the completion of the LOGO ACC
transmission, the will logout the node and unregister the rpi that is
being used for the node. As part of the unreg, the node's rpi
value is replaced by the LPFC_RPI_ALLOC_ERROR value. If the port is
subsequently offlined, the offline walks the nodes and ensures they
are logged out, which possibly entails unreg'ing their rpi values.
This path does not validate the nodes rpi value, thus doesn't detect that
it has been unreg'd already. The replaced rpi value is then used when
accessing the rpi bitmask array which tracks active rpi values.
As the LPFC_RPI_ALLOC_ERROR value is not a valid index for the bitmask,
it may fault the system.
Revise the rpi release code to detect when the rpi value is the replaced
RPI_ALLOC_ERROR value and ignore further release steps.
Signed-off-by: Dick Kennedy <dick.kennedy@broadcom.com>
Signed-off-by: James Smart <jsmart2021@gmail.com>
---
drivers/scsi/lpfc/lpfc_sli.c | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/drivers/scsi/lpfc/lpfc_sli.c b/drivers/scsi/lpfc/lpfc_sli.c
index 294f041961a8..660f96218b25 100644
--- a/drivers/scsi/lpfc/lpfc_sli.c
+++ b/drivers/scsi/lpfc/lpfc_sli.c
@@ -18247,6 +18247,13 @@ lpfc_sli4_alloc_rpi(struct lpfc_hba *phba)
static void
__lpfc_sli4_free_rpi(struct lpfc_hba *phba, int rpi)
{
+ /*
+ * if the rpi value indicates a prior unreg has already
+ * been done, skip the unreg.
+ */
+ if (rpi == LPFC_RPI_ALLOC_ERROR)
+ return;
+
if (test_and_clear_bit(rpi, phba->sli4_hba.rpi_bmask)) {
phba->sli4_hba.rpi_count--;
phba->sli4_hba.max_cfg_param.rpi_used--;
--
2.13.7
next prev parent reply other threads:[~2019-11-05 0:57 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-11-05 0:56 [PATCH 00/11] lpfc: Update lpfc to revision 12.6.0.1 James Smart
2019-11-05 0:56 ` James Smart [this message]
2019-11-05 0:56 ` [PATCH 02/11] lpfc: Fix configuration of BB credit recovery in service parameters James Smart
2019-11-05 0:57 ` [PATCH 03/11] lpfc: Fix kernel crash at lpfc_nvme_info_show during remote port bounce James Smart
2019-11-05 0:57 ` [PATCH 04/11] lpfc: Fix unexpected error messages during RSCN handling James Smart
2019-11-05 0:57 ` [PATCH 05/11] lpfc: Fix dynamic fw log enablement check James Smart
2019-11-05 0:57 ` [PATCH 06/11] lpfc: Sync with FC-NVMe-2 SLER change to require Conf with SLER James Smart
2019-11-05 0:57 ` [PATCH 07/11] lpfc: Clarify FAWNN error message James Smart
2019-11-05 0:57 ` [PATCH 08/11] lpfc: Add registration for CPU Offline/Online events James Smart
2019-11-05 0:57 ` [PATCH 09/11] lpfc: Change default IRQ model on AMD architectures James Smart
2019-11-05 0:57 ` [PATCH 10/11] lpfc: Add enablement of multiple adapter dumps James Smart
2019-11-05 0:57 ` [PATCH 11/11] lpfc: Update lpfc version to 12.6.0.1 James Smart
2019-11-06 4:45 ` [PATCH 00/11] lpfc: Update lpfc to revision 12.6.0.1 Martin K. Petersen
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20191105005708.7399-2-jsmart2021@gmail.com \
--to=jsmart2021@gmail.com \
--cc=dick.kennedy@broadcom.com \
--cc=linux-scsi@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.