summaryrefslogtreecommitdiff
path: root/io_uring/memmap.c
diff options
context:
space:
mode:
authorDavid Wei <dw@davidwei.uk>2025-11-04 14:44:53 -0800
committerJens Axboe <axboe@kernel.dk>2025-11-06 16:23:21 -0700
commit1fa7a34131110e3c41a13b19127da132dea32dcd (patch)
tree79910f1fb6bbec02237e4295d63b03ffe27e9727 /io_uring/memmap.c
parenta5af56a9020c0dd27bc6ab2b58d1820b01621612 (diff)
downloadlinux-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.c8
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;
}