History

Merge tag 'nvme-7.3-2026-08-13' of git://git.infradead.org/nvme into for-7.3/block

Pull NVMe updates from Keith: "- Enable context analysis for the nvme host driver, annotating the subsystem's locks, along with the LIST_HEAD_GUARDED support it needs (Nilay, Marco) - Harden the tcp host and target against malformed PDUs and out of range SGL lengths (Yehyeong, Ibrahim, Greg) - Fix unserialized page_frag_cache use in nvme-tcp request setup (Dmitry) - Bound identify, FDP and passthrough descriptor parsing to the allocated buffers (Hari, Guixin) - Zoned namespace fixes for host and the target (Xixin, Guixin, Yao) - Apple controller fixes: page aligned admin queue buffers, NVMMU TCB setup, DMA direction and admin queue teardown (Sven, Gui-Dong) - Add a namespace level debugfs directory exposing reservation state, and ABI documentation for the host sysfs and target configfs interfaces (Guixin) - Fix cdev and namespace lifetimes (John) - Parallelize nvme-rdma I/O queue allocation and startup (Surabhi) - Fix nvmet-rdma response resource leak on queue teardown (Shin'ichiro) - Authentication fixes: AUTH_RECEIVE buffer and an out of bounds read in negotiate (Xixin, Bryam, Guixin, Eric) - Fix pci-epf use-after-free and CQ reference leak (Shin'ichiro, Yifei) - Reject passthrough of driver managed Set Features (Chao) - Various error path and teardown fixes across the host and target addressing issues with use-after-free and leaking resources (Guixin, Maurizio, Ewan, Zhengrong, Jiang HongHui, Myeonghun, Yang, Geliang, Yehyeong) - Various cleanups and typo fixes (Nilay, Guixin, Pan Chuang)" * tag 'nvme-7.3-2026-08-13' of git://git.infradead.org/nvme: (81 commits) nvmet: fix max_qid race between configfs and controller allocation nvme: nvme-fc: Fix nvme_fc_create_hw_io_queues() queue deletion in error path nvme: ratelimit the completion-path messages driven by device data nvme-tcp: fix host memory disclosure on R2T for a read command nvme-tcp: do not accept C2HData based on blk_rq_payload_bytes() alone nvme-tcp: reject a read that transferred too few bytes nvmet: zns: reject full zone report when buffer is too small nvme-tcp: fix usage of page_frag_cache nvme: reject passthrough of driver-managed Set Features nvmet: fix NULL pointer dereference in nvmet_execute_identify_ns_zns() nvmet: pci-epf: fix use-after-free in nvmet_pci_epf_exec_iod_work() nvmet: pci-epf: put CQ ref on create_cq mapping failure nvme-apple: Drop the PRP null check chicken bit nvme-apple: Require page aligned buffers on the admin queue nvme: Add a quirk for page aligned admin queue buffers nvme-apple: Never set the opcode in the NVMMU TCB nvme-apple: Don't set a DMA direction for commands without a data transfer nvme-apple: Destroy the admin queue on removal nvmet: fix heap out-of-bounds read in nvmet_auth_negotiate() nvme: raise FDP placement handle cap to U8_MAX and warn on overflow ...

Jens Axboe committed 3 months ago

Commit 642ec082 parents 30df3ab f1a884636 files · +1561 −289Browse files

Showing the changes to include (2 of 36 files). Show all

Unified · Split

2 files
  1. include/linux/list.h +9 −0
  2. include/linux/nvme.h +2 −2
include/linux/list.h+9−0
@@ -33,6 +33,14 @@ · 32 unmodified lines
3333 #define LIST_HEAD(name) \
3434 struct list_head name = LIST_HEAD_INIT(name)
3535
36+/**
37+ * LIST_HEAD_GUARDED - define a &struct list_head annotated with __guarded_by()
38+ * @name: name of the list_head
39+ * @lock: lock protecting the list
40+ */
41+#define LIST_HEAD_GUARDED(name, lock) \
42+ __guarded_by(&(lock)) LIST_HEAD(name)
43+
3644 /**
3745 * INIT_LIST_HEAD - Initialize a list_head structure
3846 * @list: list_head structure to be initialized.
@@ -436,6 +444,7 @@ static inline void list_del_init_careful(struct list_head *entry) · 397 unmodified lines
436444 * if another CPU could re-list_add() it.
437445 */
438446 static inline int list_empty_careful(const struct list_head *head)
447+ __context_unsafe(/* intentional lockless access to @head */)
439448 {
440449 struct list_head *next = smp_load_acquire(&head->next);
441450 return list_is_head(next, head) && (next == READ_ONCE(head->prev));
include/linux/nvme.h+2−2
@@ -2272,14 +2272,14 @@ struct nvme_completion { · 2271 unmodified lines
22722272 #define NVME_TERTIARY(ver) ((ver) & 0xff)
22732273
22742274 enum {
2275− NVME_AEN_RESV_LOG_PAGE_AVALIABLE = 0x00,
2275+ NVME_AEN_RESV_LOG_PAGE_AVAILABLE = 0x00,
22762276 };
22772277
22782278 enum {
22792279 NVME_PR_LOG_EMPTY_LOG_PAGE = 0x00,
22802280 NVME_PR_LOG_REGISTRATION_PREEMPTED = 0x01,
22812281 NVME_PR_LOG_RESERVATION_RELEASED = 0x02,
2282− NVME_PR_LOG_RESERVATOIN_PREEMPTED = 0x03,
2282+ NVME_PR_LOG_RESERVATION_PREEMPTED = 0x03,
22832283 };
22842284
22852285 enum {

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t