linux-yocto/drivers/scsi
Ewan D. Milne c0527f7534 scsi: lpfc: Restore clearing of NLP_UNREG_INP in ndlp->nlp_flag
[ Upstream commit 040492ac25 ]

Commit 32566a6f1a ("scsi: lpfc: Remove NLP_RELEASE_RPI flag from nodelist
structure") introduced a regression with SLI-3 adapters (e.g. LPe12000 8Gb)
where a Link Down / Link Up such as caused by disabling an host FC switch
port would result in the devices remaining in the transport-offline state
and multipath reporting them as failed.  This problem was not seen with
newer SLI-4 adapters.

The problem was caused by portions of the patch which removed the functions
__lpfc_sli_rpi_release() and lpfc_sli_rpi_release() and all their callers.
This was presumably because with the removal of the NLP_RELEASE_RPI flag
there was no need to free the rpi.

However, __lpfc_sli_rpi_release() and lpfc_sli_rpi_release() which calls it
reset the NLP_UNREG_INP flag. And, lpfc_sli_def_mbox_cmpl() has a path
where __lpfc_sli_rpi_release() was called in a particular case where
NLP_UNREG_INP was not otherwise cleared because of other conditions.

Restoring the else clause of this conditional and simply clearing the
NLP_UNREG_INP flag appears to resolve the problem with SLI-3 adapters.  It
should be noted that the code path in question is not specific to SLI-3,
but there are other SLI-4 code paths which may have masked the issue.

Fixes: 32566a6f1a ("scsi: lpfc: Remove NLP_RELEASE_RPI flag from nodelist structure")
Cc: stable@vger.kernel.org
Tested-by: Marco Patalano <mpatalan@redhat.com>
Signed-off-by: Ewan D. Milne <emilne@redhat.com>
Link: https://lore.kernel.org/r/20250317163731.356873-1-emilne@redhat.com
Reviewed-by: Justin Tee <justin.tee@broadcom.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2025-07-10 16:05:05 +02:00
..
aacraid move asm/unaligned.h to linux/unaligned.h 2024-10-02 17:23:23 -04:00
aic7xxx Kbuild updates for v6.10 2024-05-18 12:39:20 -07:00
aic94xx Merge patch series "Add LIBSAS_SHT_BASE for libsas" 2024-03-25 16:09:36 -04:00
arcmsr scsi: arcmsr: Use PCI_IRQ_INTX instead of PCI_IRQ_LEGACY 2024-05-16 14:35:08 -05:00
arm scsi: powertec: Declare local function static 2024-06-04 22:21:50 -04:00
be2iscsi scsi: be2iscsi: Simplify an alloc_workqueue() invocation 2024-08-22 21:28:55 -04:00
bfa scsi: bfa: Fix use-after-free in bfad_im_module_exit() 2024-12-05 14:02:10 +01:00
bnx2fc scsi: bnx2fc: Remove some unused fields in struct bnx2fc_rport 2024-08-28 21:33:21 -04:00
bnx2i scsi: bnx2i: Remove unused declarations 2024-08-28 20:58:47 -04:00
csiostor move asm/unaligned.h to linux/unaligned.h 2024-10-02 17:23:23 -04:00
cxgbi scsi: libcxgbi: Remove an unused field in struct cxgbi_device 2024-09-12 20:20:14 -04:00
cxlflash move asm/unaligned.h to linux/unaligned.h 2024-10-02 17:23:23 -04:00
device_handler move asm/unaligned.h to linux/unaligned.h 2024-10-02 17:23:23 -04:00
elx scsi: elx: efct: Fix memory leak in efct_hw_parse_filter() 2025-06-27 11:11:45 +01:00
esas2r scsi: esas2r: Simplify an alloc_ordered_workqueue() invocation 2024-08-22 21:28:55 -04:00
fcoe SCSI misc on 20240919 2024-09-19 11:28:51 +02:00
fnic scsi: replace blk_mq_pci_map_queues with blk_mq_map_hw_queues 2025-04-25 10:47:38 +02:00
hisi_sas scsi: hisi_sas: Call I_T_nexus after soft reset for SATA disk 2025-06-19 15:31:44 +02:00
ibmvscsi scsi: ibmvfc: Add max_sectors module parameter 2024-09-12 20:18:30 -04:00
ibmvscsi_tgt scsi: ibmvscsi_tgt: Simplify an alloc_workqueue() invocation 2024-08-22 21:28:56 -04:00
isci minmax: make generic MIN() and MAX() macros available everywhere 2024-07-28 15:49:18 -07:00
libfc move asm/unaligned.h to linux/unaligned.h 2024-10-02 17:23:23 -04:00
libsas move asm/unaligned.h to linux/unaligned.h 2024-10-02 17:23:23 -04:00
lpfc scsi: lpfc: Restore clearing of NLP_UNREG_INP in ndlp->nlp_flag 2025-07-10 16:05:05 +02:00
megaraid scsi: megaraid_sas: Fix invalid node index 2025-07-06 11:01:44 +02:00
mpi3mr scsi: mpi3mr: Update timestamp only for supervisor IOCs 2025-05-29 11:02:39 +02:00
mpt3sas scsi: mpt3sas: Send a diag reset if target reset fails 2025-05-29 11:02:42 +02:00
mvsas move asm/unaligned.h to linux/unaligned.h 2024-10-02 17:23:23 -04:00
pcmcia scsi: Add missing MODULE_DESCRIPTION() macros 2024-06-11 21:33:58 -04:00
pm8001 scsi: pm80xx: Set phy_attached to zero when device is gone 2025-05-02 07:59:26 +02:00
qedf scsi: qedf: Use designated initializer for struct qed_fcoe_cb_ops 2025-06-19 15:31:38 +02:00
qedi scsi: qedi: Fix a possible memory leak in qedi_alloc_and_init_sb() 2024-12-05 14:02:11 +01:00
qla2xxx scsi: qla2xxx: Fix DMA mapping test in qla24xx_get_port_database() 2025-07-10 16:04:45 +02:00
qla4xxx scsi: qla4xxx: Fix missing DMA mapping error in qla4xxx_alloc_pdu() 2025-07-10 16:04:45 +02:00
smartpqi scsi: smartpqi: Add new PCI IDs 2025-06-27 11:11:32 +01:00
snic Merge patch series "Simplify multiple create*_workqueue() invocations" 2024-08-22 21:30:06 -04:00
sym53c8xx_2
.gitignore
3w-9xxx.c
3w-9xxx.h
3w-sas.c
3w-sas.h
3w-xxxx.c
3w-xxxx.h
53c700_d.h_shipped
53c700.c
53c700.h
53c700.scr
a100u2w.c
a100u2w.h
a2091.c
a2091.h
a3000.c scsi: a3000: Mark driver struct with __refdata to prevent section mismatch 2024-04-05 21:11:44 -04:00
a3000.h
a4000t.c scsi: a4000t: Mark driver struct with __refdata to prevent section mismatch 2024-04-05 21:11:44 -04:00
advansys.c scsi: Add missing MODULE_DESCRIPTION() macros 2024-06-11 21:33:58 -04:00
aha152x.c scsi: aha152x: Use DECLARE_COMPLETION_ONSTACK for non-constant completion 2024-07-10 22:51:44 -04:00
aha152x.h
aha1542.c scsi: Add missing MODULE_DESCRIPTION() macros 2024-06-11 21:33:58 -04:00
aha1542.h
aha1740.c scsi: Add missing MODULE_DESCRIPTION() macros 2024-06-11 21:33:58 -04:00
aha1740.h
am53c974.c
atari_scsi.c scsi: Add missing MODULE_DESCRIPTION() macros 2024-06-11 21:33:58 -04:00
atp870u.c scsi: Add missing MODULE_DESCRIPTION() macros 2024-06-11 21:33:58 -04:00
atp870u.h
BusLogic.c scsi: Add missing MODULE_DESCRIPTION() macros 2024-06-11 21:33:58 -04:00
BusLogic.h
bvme6000_scsi.c
ch.c scsi: ch: Make ch_sysfs_class constant 2024-03-10 18:15:48 -04:00
constants.c
dc395x.c
dc395x.h
dmx3191d.c
esp_scsi.c Normalise "name (ad@dr)" MODULE_AUTHORs to "name <ad@dr>" 2024-03-06 13:07:39 -08:00
esp_scsi.h
fdomain_isa.c
fdomain_pci.c
fdomain.c
fdomain.h
FlashPoint.c scsi: FlashPoint: Remove redundant assignment to pointer currTar_Info 2024-04-08 22:01:19 -04:00
g_NCR5380.c scsi: Add missing MODULE_DESCRIPTION() macros 2024-06-11 21:33:58 -04:00
gvp11.c
gvp11.h
hosts.c scsi: core: Simplify an alloc_workqueue() invocation 2024-08-22 21:28:57 -04:00
hpsa_cmd.h
hpsa.c move asm/unaligned.h to linux/unaligned.h 2024-10-02 17:23:23 -04:00
hpsa.h
hptiop.c scsi: hptiop: Switch to using ->device_configure 2024-04-11 21:37:49 -04:00
hptiop.h
imm.c Char/Misc and other driver changes for 6.11-rc1 2024-07-19 15:55:08 -07:00
imm.h
initio.c
initio.h
ipr.c pci-v6.10-changes 2024-05-21 10:09:28 -07:00
ipr.h move asm/unaligned.h to linux/unaligned.h 2024-10-02 17:23:23 -04:00
ips.c
ips.h
iscsi_boot_sysfs.c
iscsi_tcp.c block: move the stable_writes flag to queue_limits 2024-06-19 07:58:28 -06:00
iscsi_tcp.h
jazz_esp.c Normalise "name (ad@dr)" MODULE_AUTHORs to "name <ad@dr>" 2024-03-06 13:07:39 -08:00
Kconfig block: remove the blk_integrity_profile structure 2024-06-14 10:20:06 -06:00
lasi700.c
libiscsi_tcp.c
libiscsi.c move asm/unaligned.h to linux/unaligned.h 2024-10-02 17:23:23 -04:00
mac_esp.c
mac_scsi.c scsi: mac_scsi: Enable scatter/gather by default 2024-08-12 22:05:49 -04:00
mac53c94.c powerpc/macio: Make remove callback of macio driver void returned 2024-03-07 23:06:19 +11:00
mac53c94.h
Makefile scsi: scsi_proto: Add structures and constants related to I/O groups and streams 2024-02-26 21:37:26 -05:00
megaraid.c
megaraid.h
mesh.c powerpc updates for 6.9 2024-03-15 17:53:48 -07:00
mesh.h
mvme16x_scsi.c
mvme147.c
mvme147.h
mvumi.c
mvumi.h
myrb.c move asm/unaligned.h to linux/unaligned.h 2024-10-02 17:23:23 -04:00
myrb.h scsi: myrb: Simplify an alloc_ordered_workqueue() invocation 2024-08-22 21:28:56 -04:00
myrs.c move asm/unaligned.h to linux/unaligned.h 2024-10-02 17:23:23 -04:00
myrs.h scsi: myrs: Simplify an alloc_ordered_workqueue() invocation 2024-08-22 21:28:56 -04:00
ncr53c8xx.c
ncr53c8xx.h
NCR5380.c scsi: NCR5380: Clean up indentation 2024-08-12 22:05:50 -04:00
NCR5380.h scsi: NCR5380: Clean up indentation 2024-08-12 22:05:50 -04:00
nsp32_debug.c
nsp32_io.h
nsp32.c
nsp32.h
pmcraid.c SCSI misc on 20240928 2024-09-29 09:22:34 -07:00
pmcraid.h
ppa.c Char/Misc and other driver changes for 6.11-rc1 2024-07-19 15:55:08 -07:00
ppa.h
ps3rom.c
qla1280.c scsi: qla1280: Fix kernel oops when debug level > 2 2025-03-22 12:54:15 -07:00
qla1280.h scsi: qla1280: Fix hw revision numbering for ISP1020/1040 2025-01-02 10:34:16 +01:00
qlogicfas.c
qlogicfas408.c
qlogicfas408.h
qlogicpti.c Normalise "name (ad@dr)" MODULE_AUTHORs to "name <ad@dr>" 2024-03-06 13:07:39 -08:00
qlogicpti.h
raid_class.c
script_asm.pl
scsi_bsg.c
scsi_common.c move asm/unaligned.h to linux/unaligned.h 2024-10-02 17:23:23 -04:00
scsi_debug.c scsi: scsi_debug: First fixes for tapes 2025-05-29 11:02:39 +02:00
scsi_debugfs.c scsi: core: Improve the code for showing commands in debugfs 2024-04-08 22:12:33 -04:00
scsi_debugfs.h
scsi_devinfo.c scsi: core: Fix an incorrect comment 2024-06-13 15:21:24 -04:00
scsi_dh.c
scsi_error.c move asm/unaligned.h to linux/unaligned.h 2024-10-02 17:23:23 -04:00
scsi_ioctl.c
scsi_lib_dma.c
scsi_lib_test.c
scsi_lib.c scsi: core: Clear flags for scsi_cmnd that did not complete 2025-05-02 07:59:01 +02:00
scsi_logging.c
scsi_logging.h
scsi_netlink.c
scsi_pm.c
scsi_priv.h SCSI misc on 20240316 2024-03-16 16:31:12 -07:00
scsi_proc.c
scsi_proto_test.c move asm/unaligned.h to linux/unaligned.h 2024-10-02 17:23:23 -04:00
scsi_sas_internal.h
scsi_scan.c scsi: core: Use GFP_NOIO to avoid circular locking dependency 2025-03-22 12:54:15 -07:00
scsi_sysctl.c scsi: logging: Fix scsi_logging_level bounds 2025-05-29 11:02:32 +02:00
scsi_sysfs.c driver core: have match() callback in struct bus_type take a const * 2024-07-03 15:16:54 +02:00
scsi_trace.c move asm/unaligned.h to linux/unaligned.h 2024-10-02 17:23:23 -04:00
scsi_transport_api.h
scsi_transport_fc.c scsi: scsi_transport_fc: Allow setting rport state to current state 2024-10-03 22:01:34 -04:00
scsi_transport_iscsi.c scsi: iscsi: Fix incorrect error path labels for flashnode operations 2025-06-19 15:32:27 +02:00
scsi_transport_sas.c scsi: mpi3mr: Fix ATA NCQ priority support 2024-06-11 21:40:23 -04:00
scsi_transport_spi.c
scsi_transport_srp.c
scsi.c scsi: Improve CDL control 2025-05-02 07:59:09 +02:00
scsicam.c move asm/unaligned.h to linux/unaligned.h 2024-10-02 17:23:23 -04:00
sd_dif.c block: move integrity information into queue_limits 2024-06-14 10:20:07 -06:00
sd_trace.h
sd_zbc.c scsi: sd_zbc: block: Respect bio vector limits for REPORT ZONES buffer 2025-05-22 14:29:49 +02:00
sd.c scsi: sd: Fix VPD page 0xb7 length check 2025-07-10 16:04:46 +02:00
sd.h scsi: sd: Atomic write support 2024-06-20 15:19:17 -06:00
sense_codes.h
ses.c move asm/unaligned.h to linux/unaligned.h 2024-10-02 17:23:23 -04:00
sg.c scsi: sg: Fix slab-use-after-free read in sg_release() 2024-12-14 20:03:18 +01:00
sgiwd93.c
sim710.c
sni_53c710.c
sr_ioctl.c minmax: scsi: fix mis-use of 'clamp()' in sr.c 2024-07-28 17:06:20 -07:00
sr_vendor.c
sr.c move asm/unaligned.h to linux/unaligned.h 2024-10-02 17:23:23 -04:00
sr.h scsi: sr: Fix unintentional arithmetic wraparound 2024-05-15 10:05:24 -04:00
st_options.h
st.c scsi: st: Restore some drive settings after reset 2025-05-29 11:03:03 +02:00
st.h scsi: st: Restore some drive settings after reset 2025-05-29 11:03:03 +02:00
stex.c scsi: stex: Simplify an alloc_ordered_workqueue() invocation 2024-08-22 21:28:57 -04:00
storvsc_drv.c scsi: storvsc: Increase the timeouts to storvsc_timeout 2025-06-27 11:11:37 +01:00
sun_esp.c Normalise "name (ad@dr)" MODULE_AUTHORs to "name <ad@dr>" 2024-03-06 13:07:39 -08:00
sun3_scsi_vme.c
sun3_scsi.c scsi: NCR5380: Clean up indentation 2024-08-12 22:05:50 -04:00
sun3x_esp.c Normalise "name (ad@dr)" MODULE_AUTHORs to "name <ad@dr>" 2024-03-06 13:07:39 -08:00
virtio_scsi.c virtio: rename virtio_find_vqs_info() to virtio_find_vqs() 2024-07-17 05:20:58 -04:00
vmw_pvscsi.c scsi: Expand all create*_workqueue() invocations 2024-08-22 21:28:55 -04:00
vmw_pvscsi.h
wd33c93.c scsi: wd33c93: Don't use stale scsi_pointer value 2024-10-03 21:48:08 -04:00
wd33c93.h
wd719x.c
wd719x.h
xen-scsifront.c
zalon.c scsi: zalon: Remove trailing space after \n newline 2024-09-12 20:25:43 -04:00
zorro_esp.c
zorro7xx.c