[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