linux/drivers/scsi/lpfc
Justin Tee 45230f31f5 scsi: lpfc: Allow DEVICE_RECOVERY mode after RSCN receipt if in PRLI_ISSUE state
commit 9609385dd9 upstream.

Certain vendor specific targets initially register with the fabric as an
initiator function first and then re-register as a target function
afterwards.

The timing of the target function re-registration can cause a race
condition such that the driver is stuck assuming the remote port as an
initiator function and never discovers the target's hosted LUNs.

Expand the nlp_state qualifier to also include NLP_STE_PRLI_ISSUE because
the state means that PRLI was issued but we have not quite reached
MAPPED_NODE state yet.  If we received an RSCN in the PRLI_ISSUE state,
then we should restart discovery again by going into DEVICE_RECOVERY.

Fixes: dded1dc31a ("scsi: lpfc: Modify when a node should be put in device recovery mode during RSCN")
Cc: <stable@vger.kernel.org> # v6.6+
Signed-off-by: Justin Tee <justin.tee@broadcom.com>
Link: https://lore.kernel.org/r/20240628172011.25921-3-justintee8345@gmail.com
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
History 2024-08-03 08:54:26 +02:00
..
lpfc.h scsi: lpfc: Use a dedicated lock for ras_fwlog state 2024-05-17 12:02:09 +02:00
lpfc_attr.c scsi: lpfc: Fix a possible null pointer dereference 2024-08-03 08:53:59 +02: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: Use a dedicated lock for ras_fwlog state 2024-05-17 12:02:09 +02: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: Replace blk_irq_poll intr handler with threaded IRQ 2023-05-08 07:16:05 -04:00
lpfc_ct.c scsi: lpfc: Make fabric zone discovery more robust when handling unsolicited LOGO 2023-07-23 16:17:07 -04:00
lpfc_debugfs.c scsi: lpfc: Use a dedicated lock for ras_fwlog state 2024-05-17 12:02:09 +02: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: Release hbalock before calling lpfc_worker_wake_up() 2024-05-17 12:02:09 +02:00
lpfc_hbadisc.c scsi: lpfc: Allow DEVICE_RECOVERY mode after RSCN receipt if in PRLI_ISSUE state 2024-08-03 08:54:26 +02:00
lpfc_hw.h scsi: lpfc: Set Establish Image Pair service parameter only for Target Functions 2023-07-23 16:17:07 -04:00
lpfc_hw4.h scsi: lpfc: Clean up SLI-4 CQE status handling 2023-05-31 18:14:20 -04: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: lpfc: Use a dedicated lock for ras_fwlog state 2024-05-17 12:02:09 +02:00
lpfc_logmsg.h scsi: lpfc: Copyright updates for 14.2.0.13 patches 2023-05-31 18:14:20 -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 possible memory leak in lpfc_rcv_padisc() 2024-04-13 13:07:34 +02:00
lpfc_nvme.c scsi: lpfc: Replace hbalock with ndlp lock in lpfc_nvme_unregister_port() 2024-05-17 12:02:09 +02: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: Correct size for wqe for memset() 2024-04-03 15:29:03 +02:00
lpfc_scsi.c scsi: lpfc: Update lpfc_ramp_down_queue_handler() logic 2024-05-17 12:02:09 +02: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 scsi: lpfc: Use a dedicated lock for ras_fwlog state 2024-05-17 12:02:09 +02:00
lpfc_sli.h scsi: lpfc: Remove Menlo/Hornet related code 2022-07-07 17:21:44 -04:00
lpfc_sli4.h scsi: lpfc: Replace blk_irq_poll intr handler with threaded IRQ 2023-05-08 07:16:05 -04:00
lpfc_version.h scsi: lpfc: Update lpfc version to 14.2.0.14 2023-07-23 16:17:08 -04:00
lpfc_vmid.c scsi: lpfc: Move determination of vmid_flag after VMID reinitialization completes 2024-02-05 20:14:23 +00:00
lpfc_vport.c scsi: lpfc: Move NPIV's transport unregistration to after resource clean up 2024-05-17 12:02:09 +02: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