]> git.ipfire.org Git - thirdparty/linux.git/commit
io_uring: use release-acquire ordering for IORING_SETUP_R_DISABLED
authorCaleb Sander Mateos <csander@purestorage.com>
Mon, 5 Jan 2026 21:05:40 +0000 (14:05 -0700)
committerJens Axboe <axboe@kernel.dk>
Mon, 12 Jan 2026 18:21:38 +0000 (11:21 -0700)
commit7a8737e1132ff07ca225aa7a4008f87319b5b1ca
tree040c9397d0d942ca858fe17edc792a0fcef34963
parent48ed70131e4f3057f819c848d92fe84ba696e2a9
io_uring: use release-acquire ordering for IORING_SETUP_R_DISABLED

io_uring_enter(), __io_msg_ring_data(), and io_msg_send_fd() read
ctx->flags and ctx->submitter_task without holding the ctx's uring_lock.
This means they may race with the assignment to ctx->submitter_task and
the clearing of IORING_SETUP_R_DISABLED from ctx->flags in
io_register_enable_rings(). Ensure the correct ordering of the
ctx->flags and ctx->submitter_task memory accesses by storing to
ctx->flags using release ordering and loading it using acquire ordering.

Signed-off-by: Caleb Sander Mateos <csander@purestorage.com>
Fixes: 4add705e4eeb ("io_uring: remove io_register_submitter")
Reviewed-by: Joanne Koong <joannelkoong@gmail.com>
Reviewed-by: Gabriel Krisman Bertazi <krisman@suse.de>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
io_uring/io_uring.c
io_uring/msg_ring.c
io_uring/register.c