[GIT PULL] nvme fixes for Linux 7.4
Keith Busch
kbusch at kernel.org
Thu Nov 5 12:44:16 PST 2026
This pull includes a patch for the srcu subsystem. The patch adds a new
helper, list_splice_init_srcu(), needed to fix namespace removal racing
with srcu readers. Paul McKenney reviewed and acked this going through
our nvme tree:
https://lore.kernel.org/linux-nvme/493a0897-c117-4517-a3a4-6d84da9d30ae@paulmck-laptop/
The following changes since commit c8c53d669d4e45b3a804013251a34387d7e11bfb:
blk-crypto: fix NULL deref and UAF in __blk_crypto_evict_key() (2026-10-29 11:10:05 -0600)
are available in the Git repository at:
git://git.infradead.org/nvme.git tags/nvme-7.4-2026-11-05
for you to fetch changes up to f33c8bc785401669b29229bcf3d0086ba9f5b87c:
nvmet: cache passthru reference in __nvmet_req_complete() (2026-11-05 08:53:01 -0800)
----------------------------------------------------------------
nvme fixes for Linux 7.4
- Fix a passthru reference leak that hangs disabling a target passthru
controller (7.4-rc1 regression)
- Fix namespace removal race with SRCU readers of the namespace list
- Fix use-after-free in nvme-tcp controller teardown after a failed
connect
- Fix NULL dereference in nvme-rdma when a reconnect adds queues
- nvmet-rdma device removal and disconnect fixes
- nvmet-tcp TLS record type handling and bounded connection accept work
- Don't leak stale memory in the nvmet ANA log page
- Harden nvmet against invalid input: keep-alive timeout overflow,
incomplete DHCHAP messages, configfs address bounds, arbitration
burst mask, and locking for traffic based keep alive updates
- Keep the old nvmet auth keys if setting new ones fails
- Delete nvme-loop controller on failed reset
- Fix extra cdev reference put and unregister on a zero pr_register key
- Fix a TLS key reference leak in the nvme keyring
- Quirks for ADATA XPG GAMMIX S70 BLADE and KIOXIA XG10d
- Speed up nvmet namespace disable
- Misc cleanups
----------------------------------------------------------------
Chris Mason (4):
nvmet-rdma: disconnect only established queues
nvmet-rdma: take a device off the list last
nvmet-rdma: queue the release work under the mutex
nvmet-rdma: disconnect a queue on device removal
Christian Aurich Zanettini Martins (2):
nvme-tcp: fix use-after-free in nvme_tcp_free_ctrl()
nvme-rdma: fix NULL queue->ctrl dereference on reconnect
Christophe JAILLET (1):
nvmet: pci-epf: Constify struct pci_epf_ops
Daejun Park (1):
nvme: unregister when pr_register() is given a zero new key
Ewan D. Milne (1):
nvmet: don't return memory contents beyond valid data when reading ANA log page
Guixin Liu (1):
nvmet-rdma: remove dead allocated field in nvmet_rdma_rsp
Hugo Deco (1):
nvme-pci: add NO_FUA quirk for ADATA XPG GAMMIX S70 BLADE
James Fantin-Hardesty (1):
nvmet: fix arbitration burst field mask
Jarkko Sakkinen (1):
nvme-keyring: Add a missing key_put() call to nvme_tls_key_lookup()
Josef Bacik (4):
nvme-loop: delete the controller if a reset fails
nvmet-tcp: ask for the TLS record type on every receive
nvmet-auth: keep the old keys if the new ones fail
nvmet-tcp: limit the connections accepted per work run
Jérémy Jean (1):
nvmet-auth: reject incomplete DHCHAP messages
Nilay Shroff (1):
nvmet: cache passthru reference in __nvmet_req_complete()
Qiliang Yuan (3):
nvmet: drop the extra RCU grace period in nvmet_ns_disable()
srcu: Add list_splice_init_srcu()
nvme: wait for SRCU readers before splicing the namespace list
Sasha Levin (1):
nvme-pci: add NVME_QUIRK_DMAPOOL_ALIGN_512 for KIOXIA XG10d
Shao Mingyin (3):
nvmet: take subsys->lock when forcing reconnects for tbkas
nvmet: bound the traddr and trsvcid configfs writes
nvmet: drop the redundant auth check in nvmet_parse_io_cmd()
Sreeraj S Kurup (1):
nvmet: use appropriate types for authentication payload lengths
Yingjie Wang (1):
nvmet: reject keep-alive timeouts that would overflow
Yuqiang Sun (1):
nvme: Do not drop the cdev reference twice when cdev_device_add() fails
drivers/nvme/common/keyring.c | 1 +
drivers/nvme/host/core.c | 23 +++++++++---
drivers/nvme/host/multipath.c | 2 -
drivers/nvme/host/nvme.h | 8 ++++
drivers/nvme/host/pci.c | 4 ++
drivers/nvme/host/pr.c | 8 +++-
drivers/nvme/host/rdma.c | 7 ++--
drivers/nvme/host/tcp.c | 10 ++---
drivers/nvme/target/admin-cmd.c | 20 ++++++++--
drivers/nvme/target/auth.c | 69 ++++++++++++++--------------------
drivers/nvme/target/configfs.c | 6 ++-
drivers/nvme/target/core.c | 27 ++++++++-----
drivers/nvme/target/fabrics-cmd-auth.c | 10 ++---
drivers/nvme/target/loop.c | 5 ++-
drivers/nvme/target/nvmet.h | 32 ++++++++++++----
drivers/nvme/target/pci-epf.c | 2 +-
drivers/nvme/target/rdma.c | 56 ++++++++++++++++-----------
drivers/nvme/target/tcp.c | 13 ++++++-
include/linux/srcu.h | 36 ++++++++++++++++++
19 files changed, 228 insertions(+), 111 deletions(-)
More information about the Linux-nvme
mailing list