summaryrefslogtreecommitdiff
path: root/tools/lib/python
diff options
context:
space:
mode:
authorChristian Aurich Zanettini Martins <christian.aurichzm@gmail.com>2026-10-28 11:33:43 -0300
committerKeith Busch <kbusch@kernel.org>2026-10-28 08:25:37 -0700
commite35557e41ab1c254061eb5c5f57a2aaee1fe69c4 (patch)
tree1937c72ee7fb6fbc7433ed911f1f101e356e70a9 /tools/lib/python
parent2eeeaa9c1ff0c429096acc2947c296db6a56f96d (diff)
nvme-tcp: fix NULL queue->ctrl dereference on reconnect
Since commit 61b0ed3be81b ("nvme-tcp: parallelize I/O queue allocation and startup"), a reconnect that gets more I/O queues than before grows the tag set before the new queues are allocated. queue->ctrl is only set by nvme_tcp_alloc_queue(), so I/O submitted in between reaches nvme_tcp_queue_rq() on a queue that was never allocated and dereferences a NULL queue->ctrl: BUG: kernel NULL pointer dereference, address: 00000000000002ac RIP: 0010:nvme_tcp_queue_rq+0x33/0x3b0 Add nvme_tcp_init_queue() for the queue fields that do not depend on the connection and call it for every queue when allocating the controller. Such requests are then requeued like on any other queue that is not live. send_mutex and io_work move there as well, and nvme_tcp_exit_queue() destroys the helper's mutexes when the controller is freed. Fixes: 61b0ed3be81b ("nvme-tcp: parallelize I/O queue allocation and startup") Suggested-by: Keith Busch <kbusch@kernel.org> Reviewed-by: Nilay Shroff <nilay@linux.ibm.com> Reviewed-by: Christoph Hellwig <hch@lst.de> Reviewed-by: Hannes Reinecke <hare@kernel.org> Signed-off-by: Christian Aurich Zanettini Martins <christian.aurichzm@gmail.com> [kbusch: dropped the comment above nvme_tcp_init_queue()] Signed-off-by: Keith Busch <kbusch@kernel.org>
Diffstat (limited to 'tools/lib/python')
0 files changed, 0 insertions, 0 deletions