diff options
| author | Pavel Begunkov <asml.silence@gmail.com> | 2025-10-16 14:23:21 +0100 |
|---|---|---|
| committer | Jens Axboe <axboe@kernel.dk> | 2025-10-20 10:37:56 -0600 |
| commit | 6e9752977caa47c200f88d7df1ff114955a03bad (patch) | |
| tree | ef1aea8a2601eadd8dc3d1a8a6de6fcea4547536 /io_uring | |
| parent | 0c89dbbcadf126920e6f9ebfa64e2538af84fef3 (diff) | |
io_uring: don't free never created regions
io_free_region() tolerates empty regions but there is no reason to that
either. If the first io_create_region() in io_register_resize_rings()
fails, just return the error without attempting to clean it up.
Signed-off-by: Pavel Begunkov <asml.silence@gmail.com>
Reviewed-by: Gabriel Krisman Bertazi <krisman@suse.de>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Diffstat (limited to 'io_uring')
| -rw-r--r-- | io_uring/register.c | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/io_uring/register.c b/io_uring/register.c index f7f71f035b0d..b11550ed940c 100644 --- a/io_uring/register.c +++ b/io_uring/register.c @@ -432,10 +432,9 @@ static int io_register_resize_rings(struct io_ring_ctx *ctx, void __user *arg) rd.flags |= IORING_MEM_REGION_TYPE_USER; } ret = io_create_region(ctx, &n.ring_region, &rd, IORING_OFF_CQ_RING); - if (ret) { - io_register_free_rings(ctx, &n); + if (ret) return ret; - } + n.rings = io_region_get_ptr(&n.ring_region); /* |