]> git.ipfire.org Git - thirdparty/linux.git/commit
io_uring: fix IOPOLL with passthrough I/O
authorJens Axboe <axboe@kernel.dk>
Wed, 14 Jan 2026 14:59:08 +0000 (07:59 -0700)
committerJens Axboe <axboe@kernel.dk>
Thu, 15 Jan 2026 05:03:49 +0000 (22:03 -0700)
commit697a5284ad9697609324739e38e341612cd342a6
tree7f97553c67c321f2494eaf7fad71a8a57b277427
parentd6406c45f14842019cfaaba19fe2a76ef9fa831c
io_uring: fix IOPOLL with passthrough I/O

A previous commit improving IOPOLL made an incorrect assumption that
task_work isn't used with IOPOLL. This can cause crashes when doing
passthrough I/O on nvme, where queueing the completion task_work will
trample on the same memory that holds the completed list of requests.

Fix it up by shuffling the members around, so we're not sharing any
parts that end up getting used in this path.

Fixes: 3c7d76d6128a ("io_uring: IOPOLL polling improvements")
Reported-by: Yi Zhang <yi.zhang@redhat.com>
Link: https://lore.kernel.org/linux-block/CAHj4cs_SLPj9v9w5MgfzHKy+983enPx3ZQY2kMuMJ1202DBefw@mail.gmail.com/
Tested-by: Yi Zhang <yi.zhang@redhat.com>
Cc: Ming Lei <ming.lei@redhat.com>
Reviewed-by: Ming Lei <ming.lei@redhat.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
include/linux/io_uring_types.h
io_uring/rw.c