]> www.infradead.org Git - users/hch/misc.git/commitdiff
io_uring: fix unexpected placement on same size resizing
authorPavel Begunkov <asml.silence@gmail.com>
Wed, 15 Oct 2025 12:10:31 +0000 (13:10 +0100)
committerJens Axboe <axboe@kernel.dk>
Wed, 15 Oct 2025 14:01:38 +0000 (08:01 -0600)
There might be many reasons why a user is resizing a ring, e.g. moving
to huge pages or for some memory compaction using IORING_SETUP_NO_MMAP.
Don't bypass resizing, the user will definitely be surprised seeing 0
while the rings weren't actually moved to a new place.

Signed-off-by: Pavel Begunkov <asml.silence@gmail.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
io_uring/register.c

index 58d43d624856dc1121e79603656eda0911141b2d..2e4717f1357c7a59b066dc7506b27eee3c7ba2f7 100644 (file)
@@ -421,13 +421,6 @@ static int io_register_resize_rings(struct io_ring_ctx *ctx, void __user *arg)
        if (unlikely(ret))
                return ret;
 
-       /* nothing to do, but copy params back */
-       if (p.sq_entries == ctx->sq_entries && p.cq_entries == ctx->cq_entries) {
-               if (copy_to_user(arg, &p, sizeof(p)))
-                       return -EFAULT;
-               return 0;
-       }
-
        size = rings_size(p.flags, p.sq_entries, p.cq_entries,
                                &sq_array_offset);
        if (size == SIZE_MAX)