diff options
| author | David Wei <dw@davidwei.uk> | 2025-11-04 14:44:53 -0800 |
|---|---|---|
| committer | Jens Axboe <axboe@kernel.dk> | 2025-11-06 16:23:21 -0700 |
| commit | 1fa7a34131110e3c41a13b19127da132dea32dcd (patch) | |
| tree | 79910f1fb6bbec02237e4295d63b03ffe27e9727 /io_uring/memmap.c | |
| parent | a5af56a9020c0dd27bc6ab2b58d1820b01621612 (diff) | |
| download | linux-1fa7a34131110e3c41a13b19127da132dea32dcd.tar.gz linux-1fa7a34131110e3c41a13b19127da132dea32dcd.tar.bz2 linux-1fa7a34131110e3c41a13b19127da132dea32dcd.zip | |
io_uring/memmap: refactor io_free_region() to take user_struct param
Refactor io_free_region() to take user_struct directly, instead of
accessing it from the ring ctx.
Signed-off-by: David Wei <dw@davidwei.uk>
Reviewed-by: Pavel Begunkov <asml.silence@gmail.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Diffstat (limited to 'io_uring/memmap.c')
| -rw-r--r-- | io_uring/memmap.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/io_uring/memmap.c b/io_uring/memmap.c index 11be347a49d7..24da17a5f08f 100644 --- a/io_uring/memmap.c +++ b/io_uring/memmap.c @@ -88,7 +88,7 @@ enum { IO_REGION_F_SINGLE_REF = 4, }; -void io_free_region(struct io_ring_ctx *ctx, struct io_mapped_region *mr) +void io_free_region(struct user_struct *user, struct io_mapped_region *mr) { if (mr->pages) { long nr_refs = mr->nr_pages; @@ -105,8 +105,8 @@ void io_free_region(struct io_ring_ctx *ctx, struct io_mapped_region *mr) } if ((mr->flags & IO_REGION_F_VMAP) && mr->ptr) vunmap(mr->ptr); - if (mr->nr_pages && ctx->user) - __io_unaccount_mem(ctx->user, mr->nr_pages); + if (mr->nr_pages && user) + __io_unaccount_mem(user, mr->nr_pages); memset(mr, 0, sizeof(*mr)); } @@ -226,7 +226,7 @@ int io_create_region(struct io_ring_ctx *ctx, struct io_mapped_region *mr, goto out_free; return 0; out_free: - io_free_region(ctx, mr); + io_free_region(ctx->user, mr); return ret; } |
