linux/drivers/nvme/host
Daniel Wagner 4099d8f057 nvme-fc: don't hold rport lock when putting ctrl
[ Upstream commit b71cbcf7d1 ]

nvme_fc_ctrl_put can acquire the rport lock when freeing the
ctrl object:

nvme_fc_ctrl_put
  nvme_fc_ctrl_free
    spin_lock_irqsave(rport->lock)

Thus we can't hold the rport lock when calling nvme_fc_ctrl_put.

Justin suggested use the safe list iterator variant because
nvme_fc_ctrl_put will also modify the rport->list.

Cc: Justin Tee <justin.tee@broadcom.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Daniel Wagner <wagi@kernel.org>
Signed-off-by: Keith Busch <kbusch@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
History 2026-01-19 13:09:48 +01:00
..
core.c nvme: fix misaccounting of nvme-mpath inflight I/O 2025-08-28 16:24:01 +02:00
fabrics.c nvme-fabrics: remove superfluous nvmf_host_put in nvmf_parse_options 2021-08-16 14:42:23 +02:00
fabrics.h nvme-fabrics: fix state check in nvmf_ctlr_matches_baseopts() 2022-02-08 18:34:05 +01:00
fault_inject.c nvme: enable to inject errors into admin commands 2019-06-21 11:15:50 +02:00
fc.c nvme-fc: don't hold rport lock when putting ctrl 2026-01-19 13:09:48 +01:00
fc.h nvme-fc: Update header and host for common definitions for LS handling 2020-05-09 16:18:33 -06:00
hwmon.c nvme-pci: add quirk for missing secondary temperature thresholds 2023-06-09 10:32:22 +02:00
ioctl.c nvme/ioctl: add missing space in err message 2025-03-13 12:50:53 +01:00
Kconfig nvme: Have NVME_FABRICS select NVME_CORE instead of transport drivers 2021-08-16 21:03:18 +02:00
Makefile remove the lightnvm subsystem 2021-08-14 15:54:09 -06:00
multipath.c nvme-multipath: find NUMA path only for online numa-node 2024-07-18 13:07:35 +02:00
nvme.h nvme-pci: qdepth 1 quirk 2024-10-17 15:11:25 +02:00
pci.c nvme-pci: Add TUXEDO IBS Gen8 to Samsung sleep quirk 2025-10-19 16:21:46 +02:00
rdma.c nvme-rdma: do not try to stop unallocated queues 2023-10-25 11:59:02 +02:00
tcp.c nvme-tcp: fix premature queue removal and I/O failover 2025-05-09 09:39:40 +02:00
trace.c nvme: add set feature tracing support 2021-08-16 14:42:23 +02:00
trace.h nvme: fix async event trace event 2023-05-11 23:00:28 +09:00
zns.c nvme: split nvme_report_zones 2021-06-03 10:29:26 +03:00