]> Gentwo Git Trees - linux/.git/commitdiff
io_uring: pass sq entries in the params struct
authorPavel Begunkov <asml.silence@gmail.com>
Mon, 10 Nov 2025 13:04:50 +0000 (13:04 +0000)
committerJens Axboe <axboe@kernel.dk>
Tue, 11 Nov 2025 14:53:33 +0000 (07:53 -0700)
There is no need to pass the user requested number of SQ entries
separately from the main parameter structure io_uring_params. Initialise
it at the beginning and stop passing it in favour of struct
io_uring_params::sq_entries.

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

index d11d0e9723a196047890e8d3b87012eb5d5207d1..023b0e3a829c6f45d656d4c57af3b8664079b649 100644 (file)
@@ -3479,8 +3479,10 @@ static int io_uring_sanitise_params(struct io_uring_params *p)
        return 0;
 }
 
-int io_uring_fill_params(unsigned entries, struct io_uring_params *p)
+int io_uring_fill_params(struct io_uring_params *p)
 {
+       unsigned entries = p->sq_entries;
+
        if (!entries)
                return -EINVAL;
        if (entries > IORING_MAX_ENTRIES) {
@@ -3542,7 +3544,7 @@ int io_uring_fill_params(unsigned entries, struct io_uring_params *p)
        return 0;
 }
 
-static __cold int io_uring_create(unsigned entries, struct io_uring_params *p,
+static __cold int io_uring_create(struct io_uring_params *p,
                                  struct io_uring_params __user *params)
 {
        struct io_ring_ctx *ctx;
@@ -3554,7 +3556,7 @@ static __cold int io_uring_create(unsigned entries, struct io_uring_params *p,
        if (ret)
                return ret;
 
-       ret = io_uring_fill_params(entries, p);
+       ret = io_uring_fill_params(p);
        if (unlikely(ret))
                return ret;
 
@@ -3693,7 +3695,8 @@ static long io_uring_setup(u32 entries, struct io_uring_params __user *params)
 
        if (p.flags & ~IORING_SETUP_FLAGS)
                return -EINVAL;
-       return io_uring_create(entries, &p, params);
+       p.sq_entries = entries;
+       return io_uring_create(&p, params);
 }
 
 static inline int io_uring_allowed(void)
index 23c268ab1c8fc38104250ec1ca550ceafa8a6b87..b2251446497a74d6147b28b7c7e889181d833748 100644 (file)
@@ -136,7 +136,7 @@ static inline bool io_should_wake(struct io_wait_queue *iowq)
 
 unsigned long rings_size(unsigned int flags, unsigned int sq_entries,
                         unsigned int cq_entries, size_t *sq_offset);
-int io_uring_fill_params(unsigned entries, struct io_uring_params *p);
+int io_uring_fill_params(struct io_uring_params *p);
 bool io_cqe_cache_refill(struct io_ring_ctx *ctx, bool overflow, bool cqe32);
 int io_run_task_work_sig(struct io_ring_ctx *ctx);
 int io_run_local_work(struct io_ring_ctx *ctx, int min_events, int max_events);
index 023f5e7a18dab4ca28a530a5485fe3f399069941..afb924ceb9b632c93557cd1c2bfecf18acd4f307 100644 (file)
@@ -416,7 +416,7 @@ static int io_register_resize_rings(struct io_ring_ctx *ctx, void __user *arg)
        /* properties that are always inherited */
        p.flags |= (ctx->flags & COPY_FLAGS);
 
-       ret = io_uring_fill_params(p.sq_entries, &p);
+       ret = io_uring_fill_params(&p);
        if (unlikely(ret))
                return ret;