Skip to content

Commit 7bb21a5

Browse files
isilenceaxboe
authored andcommitted
io_uring: pass sq entries in the params struct
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>
1 parent 4aed5b4 commit 7bb21a5

3 files changed

Lines changed: 9 additions & 6 deletions

File tree

io_uring/io_uring.c

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3479,8 +3479,10 @@ static int io_uring_sanitise_params(struct io_uring_params *p)
34793479
return 0;
34803480
}
34813481

3482-
int io_uring_fill_params(unsigned entries, struct io_uring_params *p)
3482+
int io_uring_fill_params(struct io_uring_params *p)
34833483
{
3484+
unsigned entries = p->sq_entries;
3485+
34843486
if (!entries)
34853487
return -EINVAL;
34863488
if (entries > IORING_MAX_ENTRIES) {
@@ -3542,7 +3544,7 @@ int io_uring_fill_params(unsigned entries, struct io_uring_params *p)
35423544
return 0;
35433545
}
35443546

3545-
static __cold int io_uring_create(unsigned entries, struct io_uring_params *p,
3547+
static __cold int io_uring_create(struct io_uring_params *p,
35463548
struct io_uring_params __user *params)
35473549
{
35483550
struct io_ring_ctx *ctx;
@@ -3554,7 +3556,7 @@ static __cold int io_uring_create(unsigned entries, struct io_uring_params *p,
35543556
if (ret)
35553557
return ret;
35563558

3557-
ret = io_uring_fill_params(entries, p);
3559+
ret = io_uring_fill_params(p);
35583560
if (unlikely(ret))
35593561
return ret;
35603562

@@ -3693,7 +3695,8 @@ static long io_uring_setup(u32 entries, struct io_uring_params __user *params)
36933695

36943696
if (p.flags & ~IORING_SETUP_FLAGS)
36953697
return -EINVAL;
3696-
return io_uring_create(entries, &p, params);
3698+
p.sq_entries = entries;
3699+
return io_uring_create(&p, params);
36973700
}
36983701

36993702
static inline int io_uring_allowed(void)

io_uring/io_uring.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -136,7 +136,7 @@ static inline bool io_should_wake(struct io_wait_queue *iowq)
136136

137137
unsigned long rings_size(unsigned int flags, unsigned int sq_entries,
138138
unsigned int cq_entries, size_t *sq_offset);
139-
int io_uring_fill_params(unsigned entries, struct io_uring_params *p);
139+
int io_uring_fill_params(struct io_uring_params *p);
140140
bool io_cqe_cache_refill(struct io_ring_ctx *ctx, bool overflow, bool cqe32);
141141
int io_run_task_work_sig(struct io_ring_ctx *ctx);
142142
int io_run_local_work(struct io_ring_ctx *ctx, int min_events, int max_events);

io_uring/register.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -416,7 +416,7 @@ static int io_register_resize_rings(struct io_ring_ctx *ctx, void __user *arg)
416416
/* properties that are always inherited */
417417
p.flags |= (ctx->flags & COPY_FLAGS);
418418

419-
ret = io_uring_fill_params(p.sq_entries, &p);
419+
ret = io_uring_fill_params(&p);
420420
if (unlikely(ret))
421421
return ret;
422422

0 commit comments

Comments
 (0)