]> www.infradead.org Git - users/dwmw2/linux.git/commitdiff
io_uring/uring_cmd: fix buffer index retrieval
authorMing Lei <ming.lei@redhat.com>
Mon, 11 Nov 2024 10:13:18 +0000 (18:13 +0800)
committerJens Axboe <axboe@kernel.dk>
Mon, 11 Nov 2024 15:11:37 +0000 (08:11 -0700)
Add back buffer index retrieval for IORING_URING_CMD_FIXED.

Reported-by: Guangwu Zhang <guazhang@redhat.com>
Cc: Jeff Moyer <jmoyer@redhat.com>
Fixes: b54a14041ee6 ("io_uring/rsrc: add io_rsrc_node_lookup() helper")
Signed-off-by: Ming Lei <ming.lei@redhat.com>
Reviewed-by: Kanchan Joshi <joshi.k@samsung.com>
Reviewed-by: Anuj Gupta <anuj20.g@samsung.com>
Tested-by: Guangwu Zhang <guazhang@redhat.com>
Link: https://lore.kernel.org/r/20241111101318.1387557-1-ming.lei@redhat.com
Signed-off-by: Jens Axboe <axboe@kernel.dk>
io_uring/uring_cmd.c

index b62965f58f30be6abd15abe4fee91f23280770d4..e9d99d3ecc3400fb27a6c2f90b84ff7792c5a045 100644 (file)
@@ -210,8 +210,9 @@ int io_uring_cmd_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe)
        if (ioucmd->flags & IORING_URING_CMD_FIXED) {
                struct io_ring_ctx *ctx = req->ctx;
                struct io_rsrc_node *node;
+               u16 index = READ_ONCE(sqe->buf_index);
 
-               node = io_rsrc_node_lookup(&ctx->buf_table, req->buf_index);
+               node = io_rsrc_node_lookup(&ctx->buf_table, index);
                if (unlikely(!node))
                        return -EFAULT;
                /*