Date: Thu, 5 Dec 2024 09:10:57 -0800 From: Keith Busch To: axboe@kernel.dk Cc: hch@lst.de, sagi@grimberg.me, linux-nvme@lists.infradead.org Subject: [GIT PULL] nvme fixes for Linux 6.13 The following changes since commit ec9b3ac6e5630e320d926ea13a06d86d2a6bdde1: Merge tag 'nvme-6.13-2024-11-21' of git://git.infradead.org/nvme into for-6.13/block (2024-11-21 10:57:34 -0700) are available in the Git repository at: git://git.infradead.org/nvme.git tags/nvme-6.13-2024-12-05 for you to fetch changes up to b4e12f5728ff963ca5590c48b85a20d076bf517d: nvme-tcp: simplify nvme_tcp_teardown_io_queues() (2024-12-04 10:15:46 -0800) ---------------------------------------------------------------- nvme fixes for Linux 6.13 - Target fix using incorrect zero buffer (Nilay) - Device specifc deallocate quirk fixes (Christoph, Keith) - Fabrics fix for handling max command target bugs (Maurizio) - Cocci fix usage for kzalloc (Yu-Chen) - DMA size fix for host memory buffer feature (Christoph) - Fabrics queue cleanup fixes (Chunguang) ---------------------------------------------------------------- Christoph Hellwig (2): nvme: don't apply NVME_QUIRK_DEALLOCATE_ZEROES when DSM is not supported nvme-pci: don't use dma_alloc_noncontiguous with 0 merge boundary Chunguang.xu (4): nvme-tcp: fix the memleak while create new ctrl failed nvme-rdma: unquiesce admin_q before destroy it nvme-tcp: no need to quiesce admin_q in nvme_tcp_teardown_io_queues() nvme-tcp: simplify nvme_tcp_teardown_io_queues() Keith Busch (1): nvme-pci: remove two deallocate zeroes quirks Maurizio Lombardi (1): nvme-fabrics: handle zero MAXCMD without closing the connection Nilay Shroff (1): nvmet: use kzalloc instead of ZERO_PAGE in nvme_execute_identify_ns_nvm() Yu-Chun Lin (1): nvmet: replace kmalloc + memset with kzalloc for data allocation drivers/nvme/host/core.c | 8 +++++--- drivers/nvme/host/pci.c | 7 +++---- drivers/nvme/host/rdma.c | 8 +------- drivers/nvme/host/tcp.c | 17 +++++------------ drivers/nvme/target/admin-cmd.c | 9 +++++++-- drivers/nvme/target/pr.c | 3 +-- 6 files changed, 22 insertions(+), 30 deletions(-) . Date: Tue, 31 Dec 2024 10:41:14 -0700 From: Keith Busch To: axboe@kernel.dk Cc: linux-nvme@lists.infradead.org, hch@lst.de, sagi@grimberg.me Subject: [GIT PULL] nvme fixes for Linux 6.13 The following changes since commit 790eb09e59709a1ffc1c64fe4aae2789120851b0: block: get wp_offset by bdev_offset_from_zone_start (2024-12-10 13:24:24 -0700) are available in the Git repository at: git://git.infradead.org/nvme.git tags/nvme-6.13-2024-12-31 for you to fetch changes up to 36e3b1f9abe359b2bc25e81bc47b64354e42c9b1: nvme-tcp: remove nvme_tcp_destroy_io_queues() (2024-12-27 13:33:48 -0800) ---------------------------------------------------------------- nvme fixes for Linux 6.13 - Fix device specific quirk for PRP list alignment (Robert) - Fix target name overflow (Leo) - Fix target write granularity (Luis) - Fix target sleeping in atomic context (Nilay) - Remove unnecessary tcp queue teardown (Chunguang) ---------------------------------------------------------------- Chunguang.xu (1): nvme-tcp: remove nvme_tcp_destroy_io_queues() Leo Stone (1): nvmet: Don't overflow subsysnqn Luis Chamberlain (1): nvmet: propagate npwg topology Nilay Shroff (1): nvmet-loop: avoid using mutex in IO hotpath Robert Beckett (1): nvme-pci: 512 byte aligned dma pool segment quirk drivers/nvme/host/nvme.h | 5 +++++ drivers/nvme/host/pci.c | 9 +++++++-- drivers/nvme/host/tcp.c | 18 +++++++----------- drivers/nvme/target/admin-cmd.c | 9 +++++---- drivers/nvme/target/configfs.c | 23 +++++++++-------------- drivers/nvme/target/core.c | 108 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--------------------------------------------- drivers/nvme/target/io-cmd-bdev.c | 2 +- drivers/nvme/target/nvmet.h | 7 +++++++ drivers/nvme/target/pr.c | 8 ++++---- 9 files changed, 108 insertions(+), 81 deletions(-) . Date: Fri, 10 Jan 2025 21:06:17 -0700 From: Keith Busch To: axboe@kernel.dk Cc: linux-nvme@lists.infradead.org, hch@lst.de, sagi@grimberg.me, kch@nvidia.com Subject: [GIT PULL] nvme updates for Linux 6.14 The following changes since commit 844b8cdc681612ff24df62cdefddeab5772fadf1: nbd: don't allow reconnect after disconnect (2025-01-06 07:38:20 -0700) are available in the Git repository at: git://git.infradead.org/nvme.git tags/nvme-6.14-2024-01-10 for you to fetch changes up to 6d84dae9af94be43bb71d24353aef102fd0744da: nvme-pci: use correct size to free the hmb buffer (2025-01-10 19:30:51 -0800) ---------------------------------------------------------------- nvme updates for Linux 6.14 - Target endpoint for PCI-Endpoint transport (Damien) - Fabrics secure concatenation (Hannes) - TCP IO queue spreading fixes (Sagi, Chaitanya) - Target handling for "limited retry" flags (Guixen) - Poll type fix (Yongsoo) - Xarray storage error handling (Keisuke) - Host memory buffer free size fix on error (Francis) ---------------------------------------------------------------- Baruch Siach (1): nvme-pci: fix comment typo Damien Le Moal (18): nvme: Move opcode string helper functions declarations nvmet: Add vendor_id and subsys_vendor_id subsystem attributes nvmet: Export nvmet_update_cc() and nvmet_cc_xxx() helpers nvmet: Introduce nvmet_get_cmd_effects_admin() nvmet: Add drvdata field to struct nvmet_ctrl nvme: Add PCI transport type nvmet: Improve nvmet_alloc_ctrl() interface and implementation nvmet: Introduce nvmet_req_transfer_len() nvmet: Introduce nvmet_sq_create() and nvmet_cq_create() nvmet: Add support for I/O queue management admin commands nvmet: Do not require SGL for PCI target controller commands nvmet: Introduce get/set_feature controller operations nvmet: Implement host identifier set feature support nvmet: Implement interrupt coalescing feature support nvmet: Implement interrupt config feature support nvmet: Implement arbitration feature support nvmet: New NVMe PCI endpoint function target driver Documentation: Document the NVMe PCI endpoint target driver Francis Pravin (1): nvme-pci: use correct size to free the hmb buffer Guixin Liu (1): nvmet: handle rw's limited retry flag Hannes Reinecke (10): crypto,fs: Separate out hkdf_extract() and hkdf_expand() nvme: add nvme_auth_generate_psk() nvme: add nvme_auth_generate_digest() nvme: add nvme_auth_derive_tls_psk() nvme-keyring: add nvme_tls_psk_refresh() nvme: always include nvme-tcp: request secure channel concatenation nvme-fabrics: reset admin connection for secure concatenation nvmet-tcp: support secure channel concatenation nvmet: add tls_concat and tls_key debugfs entries Keisuke Nishimura (2): nvme: Add error check for xa_store in nvme_get_effects_log nvme: Add error path for xa_store in nvme_init_effects Sagi Grimberg (1): nvme-tcp: Fix I/O queue cpu spreading for multiple controllers Yongsoo Joo (1): nvme: change return type of nvme_poll_cq() to bool Documentation/PCI/endpoint/index.rst | 1 + Documentation/PCI/endpoint/pci-nvme-function.rst | 13 + Documentation/nvme/index.rst | 12 + Documentation/nvme/nvme-pci-endpoint-target.rst | 368 +++ Documentation/subsystem-apis.rst | 1 + crypto/Kconfig | 6 + crypto/Makefile | 1 + crypto/hkdf.c | 573 +++++ drivers/nvme/common/Kconfig | 1 + drivers/nvme/common/auth.c | 348 +++ drivers/nvme/common/keyring.c | 65 +- drivers/nvme/host/auth.c | 113 +- drivers/nvme/host/core.c | 34 +- drivers/nvme/host/fabrics.c | 34 +- drivers/nvme/host/fabrics.h | 3 + drivers/nvme/host/nvme.h | 41 +- drivers/nvme/host/pci.c | 14 +- drivers/nvme/host/sysfs.c | 4 +- drivers/nvme/host/tcp.c | 138 +- drivers/nvme/target/Kconfig | 11 + drivers/nvme/target/Makefile | 2 + drivers/nvme/target/admin-cmd.c | 388 +++- drivers/nvme/target/auth.c | 72 +- drivers/nvme/target/configfs.c | 49 + drivers/nvme/target/core.c | 269 ++- drivers/nvme/target/debugfs.c | 27 + drivers/nvme/target/discovery.c | 17 + drivers/nvme/target/fabrics-cmd-auth.c | 63 +- drivers/nvme/target/fabrics-cmd.c | 124 +- drivers/nvme/target/io-cmd-bdev.c | 3 + drivers/nvme/target/nvmet.h | 148 +- drivers/nvme/target/pci-epf.c | 2591 ++++++++++++++++++++++ drivers/nvme/target/tcp.c | 24 +- fs/crypto/Kconfig | 1 + fs/crypto/hkdf.c | 85 +- include/crypto/hkdf.h | 20 + include/linux/nvme-auth.h | 7 + include/linux/nvme-keyring.h | 12 +- include/linux/nvme.h | 49 + 39 files changed, 5441 insertions(+), 291 deletions(-) create mode 100644 Documentation/PCI/endpoint/pci-nvme-function.rst create mode 100644 Documentation/nvme/index.rst create mode 100644 Documentation/nvme/nvme-pci-endpoint-target.rst create mode 100644 crypto/hkdf.c create mode 100644 drivers/nvme/target/pci-epf.c create mode 100644 include/crypto/hkdf.h . Date: Sun, 12 Jan 2025 15:22:48 -0700 From: Keith Busch To: axboe@kernel.dk Cc: hch@lst.de, sagi@grimberg.me, linux-nvme@lists.infradead.org Subject: [GIT PULL] nvme updates for 6.14 (resend) Please drop the previous pull and use this one instead. This fixes the reported linux-next failures (missing sign-off and semi-colon build warning) and drops the secure concatenation series due to build failures with that series. The following changes since commit 844b8cdc681612ff24df62cdefddeab5772fadf1: nbd: don't allow reconnect after disconnect (2025-01-06 07:38:20 -0700) are available in the Git repository at: git://git.infradead.org/nvme.git tags/nvme-6.14-2025-01-12 for you to fetch changes up to 4a324970fabad503260973cd588609f3a26baab9: nvme-pci: use correct size to free the hmb buffer (2025-01-12 14:11:29 -0800) ---------------------------------------------------------------- nvme updates for Linux 6.14 - Target support for PCI-Endpoint transport (Damien) - TCP IO queue spreading fixes (Sagi, Chaitanya) - Target handling for "limited retry" flags (Guixen) - Poll type fix (Yongsoo) - Xarray storage error handling (Keisuke) - Host memory buffer free size fix on error (Francis) ---------------------------------------------------------------- Baruch Siach (1): nvme-pci: fix comment typo Damien Le Moal (18): nvme: Move opcode string helper functions declarations nvmet: Add vendor_id and subsys_vendor_id subsystem attributes nvmet: Export nvmet_update_cc() and nvmet_cc_xxx() helpers nvmet: Introduce nvmet_get_cmd_effects_admin() nvmet: Add drvdata field to struct nvmet_ctrl nvme: Add PCI transport type nvmet: Improve nvmet_alloc_ctrl() interface and implementation nvmet: Introduce nvmet_req_transfer_len() nvmet: Introduce nvmet_sq_create() and nvmet_cq_create() nvmet: Add support for I/O queue management admin commands nvmet: Do not require SGL for PCI target controller commands nvmet: Introduce get/set_feature controller operations nvmet: Implement host identifier set feature support nvmet: Implement interrupt coalescing feature support nvmet: Implement interrupt config feature support nvmet: Implement arbitration feature support nvmet: New NVMe PCI endpoint function target driver Documentation: Document the NVMe PCI endpoint target driver Francis Pravin (1): nvme-pci: use correct size to free the hmb buffer Guixin Liu (1): nvmet: handle rw's limited retry flag Keisuke Nishimura (2): nvme: Add error check for xa_store in nvme_get_effects_log nvme: Add error path for xa_store in nvme_init_effects Sagi Grimberg (1): nvme-tcp: Fix I/O queue cpu spreading for multiple controllers Yongsoo Joo (1): nvme: change return type of nvme_poll_cq() to bool Documentation/PCI/endpoint/index.rst | 1 + Documentation/PCI/endpoint/pci-nvme-function.rst | 13 ++ Documentation/nvme/index.rst | 12 ++ Documentation/nvme/nvme-pci-endpoint-target.rst | 368 ++++++++++++++++++++++++++++++++++++++++++++ Documentation/subsystem-apis.rst | 1 + drivers/nvme/host/core.c | 34 +++- drivers/nvme/host/nvme.h | 39 ----- drivers/nvme/host/pci.c | 14 +- drivers/nvme/host/tcp.c | 70 +++++++-- drivers/nvme/target/Kconfig | 11 ++ drivers/nvme/target/Makefile | 2 + drivers/nvme/target/admin-cmd.c | 388 ++++++++++++++++++++++++++++++++++++++++++++-- drivers/nvme/target/configfs.c | 49 ++++++ drivers/nvme/target/core.c | 266 +++++++++++++++++++++++--------- drivers/nvme/target/discovery.c | 17 ++ drivers/nvme/target/fabrics-cmd-auth.c | 14 +- drivers/nvme/target/fabrics-cmd.c | 101 ++++++++---- drivers/nvme/target/io-cmd-bdev.c | 3 + drivers/nvme/target/nvmet.h | 110 ++++++++++++- drivers/nvme/target/pci-epf.c | 2591 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ include/linux/nvme.h | 42 +++++ 21 files changed, 3960 insertions(+), 186 deletions(-) create mode 100644 Documentation/PCI/endpoint/pci-nvme-function.rst create mode 100644 Documentation/nvme/index.rst create mode 100644 Documentation/nvme/nvme-pci-endpoint-target.rst create mode 100644 drivers/nvme/target/pci-epf.c .