diff options
| author | Pavel Begunkov <asml.silence@gmail.com> | 2025-10-16 12:20:31 +0100 |
|---|---|---|
| committer | Jens Axboe <axboe@kernel.dk> | 2025-10-22 11:12:54 -0600 |
| commit | dde92a5026d81df1a146e9c243d09b27d1bf04bf (patch) | |
| tree | 6720f993fbff2264feb55f2f726f943fdb55bdfb /io_uring | |
| parent | 1cba30bf9fdd6c982708f3587f609a30c370d889 (diff) | |
io_uring: check for user passing 0 nr_submit
io_submit_sqes() shouldn't be stepping into its main loop when there is
nothing to submit, i.e. nr=0. Fix 0 submission queue entries checks,
which should follow after all user input truncations.
Signed-off-by: Pavel Begunkov <asml.silence@gmail.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Diffstat (limited to 'io_uring')
| -rw-r--r-- | io_uring/io_uring.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/io_uring/io_uring.c b/io_uring/io_uring.c index be44d636fe1f..93a1cc2bf383 100644 --- a/io_uring/io_uring.c +++ b/io_uring/io_uring.c @@ -2453,10 +2453,11 @@ int io_submit_sqes(struct io_ring_ctx *ctx, unsigned int nr) unsigned int left; int ret; + entries = min(nr, entries); if (unlikely(!entries)) return 0; - /* make sure SQ entry isn't read before tail */ - ret = left = min(nr, entries); + + ret = left = entries; io_get_task_refs(left); io_submit_state_start(&ctx->submit_state, left); |