linux/drivers/scsi/lpfc
Justin Tee 6fb6b331cd scsi: lpfc: Revise NPIV ELS unsol rcv cmpl logic to drop ndlp based on nlp_state
[ Upstream commit 9914a3d033 ]

When NPIV ports are zoned to devices that support both initiator and target
mode, a remote device's initiated PRLI results in unintended final kref
clean up of the device's ndlp structure.  This disrupts NPIV ports'
discovery for target devices that support both initiator and target mode.

Modify the NPIV lpfc_drop_node clause such that we allow the ndlp to live
so long as it was in NLP_STE_PLOGI_ISSUE, NLP_STE_REG_LOGIN_ISSUE, or
NLP_STE_PRLI_ISSUE nlp_state.  This allows lpfc's issued PRLI completion
routine to determine if the final kref clean up should execute rather than
a remote device's issued PRLI.

Fixes: db651ec225 ("scsi: lpfc: Correct used_rpi count when devloss tmo fires with no recovery")
Signed-off-by: Justin Tee <justin.tee@broadcom.com>
Link: https://lore.kernel.org/r/20230523183206.7728-5-justintee8345@gmail.com
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
History 2023-07-19 16:36:11 +02:00
..
lpfc.h scsi: lpfc: Drop redundant pci_enable_pcie_error_reporting() 2023-03-09 22:00:38 -05:00
lpfc_attr.c Merge patch series "PCI/AER: Remove redundant Device Control Error Reporting Enable" 2023-03-09 22:01:40 -05:00
lpfc_attr.h scsi: lpfc: Revise copyright for new company language 2018-07-10 22:15:09 -04:00
lpfc_bsg.c scsi: lpfc: Fix incorrect big endian type assignment in bsg loopback path 2023-06-14 21:57:48 -04:00
lpfc_bsg.h scsi: lpfc: Copyright updates for 14.2.0.5 patches 2022-07-07 17:21:44 -04:00
lpfc_compat.h scsi: lpfc: Revise copyright for new company language 2018-07-10 22:15:09 -04:00
lpfc_crtn.h scsi: lpfc: Revise lpfc_error_lost_link() reason code evaluation logic 2023-03-09 21:21:45 -05:00
lpfc_ct.c scsi: lpfc: Copyright updates for 14.2.0.11 patches 2023-03-09 21:21:45 -05:00
lpfc_debugfs.c scsi: lpfc: Copyright updates for 14.2.0.11 patches 2023-03-09 21:21:45 -05:00
lpfc_debugfs.h scsi: lpfc: Copyright updates for 14.2.0.6 patches 2022-08-31 23:39:58 -04:00
lpfc_disc.h scsi: lpfc: Fix multiple NVMe remoteport registration calls for the same NPort ID 2022-09-15 22:18:27 -04:00
lpfc_els.c scsi: lpfc: Revise NPIV ELS unsol rcv cmpl logic to drop ndlp based on nlp_state 2023-07-19 16:36:11 +02:00
lpfc_hbadisc.c scsi: lpfc: Revise lpfc_error_lost_link() reason code evaluation logic 2023-03-09 21:21:45 -05:00
lpfc_hw.h scsi: lpfc: Copyright updates for 14.2.0.11 patches 2023-03-09 21:21:45 -05:00
lpfc_hw4.h scsi: lpfc: Copyright updates for 14.2.0.10 patches 2023-01-12 00:03:15 -05:00
lpfc_ids.h scsi: lpfc: Copyright updates for 14.2.0.5 patches 2022-07-07 17:21:44 -04:00
lpfc_init.c SCSI misc on 20230426 2023-04-26 15:39:25 -07:00
lpfc_logmsg.h scsi: lpfc: Add reporting capability for Link Degrade Signaling 2022-09-15 22:18:27 -04:00
lpfc_mbox.c scsi: lpfc: Fix double word in comments 2023-02-21 22:00:51 -05:00
lpfc_mem.c scsi: lpfc: Copyright updates for 14.2.0.6 patches 2022-08-31 23:39:58 -04:00
lpfc_nl.h scsi: lpfc: Revise copyright for new company language 2018-07-10 22:15:09 -04:00
lpfc_nportdisc.c scsi: lpfc: Fix port stuck in bypassed state after LIP in PT2PT topology 2022-06-07 21:38:18 -04:00
lpfc_nvme.c scsi: lpfc: Copyright updates for 14.2.0.11 patches 2023-03-09 21:21:45 -05:00
lpfc_nvme.h scsi: lpfc: Copyright updates for 14.2.0.0 patches 2022-03-15 13:51:50 -04:00
lpfc_nvmet.c scsi: lpfc: Fix double word in comments 2023-02-21 22:00:51 -05:00
lpfc_scsi.c scsi: lpfc: Copyright updates for 14.2.0.10 patches 2023-01-12 00:03:15 -05:00
lpfc_scsi.h scsi: lpfc: Copyright updates for 14.2.0.6 patches 2022-08-31 23:39:58 -04:00
lpfc_sli.c Merge branch '6.3/scsi-fixes' into 6.4/scsi-staging 2023-03-31 21:45:14 -04:00
lpfc_sli.h scsi: lpfc: Remove Menlo/Hornet related code 2022-07-07 17:21:44 -04:00
lpfc_sli4.h scsi: lpfc: Skip waiting for register ready bits when in unrecoverable state 2023-03-09 21:21:45 -05:00
lpfc_version.h scsi: lpfc: Update lpfc version to 14.2.0.11 2023-03-09 21:21:45 -05:00
lpfc_vmid.c scsi: lpfc: Copyright updates for 14.2.0.10 patches 2023-01-12 00:03:15 -05:00
lpfc_vport.c scsi: lpfc: Copyright updates for 14.2.0.10 patches 2023-01-12 00:03:15 -05:00
lpfc_vport.h scsi: lpfc: Copyright updates for 14.2.0.6 patches 2022-08-31 23:39:58 -04:00
Makefile scsi: lpfc: Commonize VMID code location 2022-05-19 20:24:56 -04:00