diff --git a/io_uring/memmap.c b/io_uring/memmap.c index 24da17a5f08f..dc4bfc5b6fb8 100644 --- a/io_uring/memmap.c +++ b/io_uring/memmap.c @@ -134,7 +134,7 @@ static int io_region_init_ptr(struct io_mapped_region *mr) static int io_region_pin_pages(struct io_mapped_region *mr, struct io_uring_region_desc *reg) { - unsigned long size = mr->nr_pages << PAGE_SHIFT; + size_t size = io_region_size(mr); struct page **pages; int nr_pages; @@ -154,7 +154,7 @@ static int io_region_allocate_pages(struct io_mapped_region *mr, unsigned long mmap_offset) { gfp_t gfp = GFP_KERNEL_ACCOUNT | __GFP_ZERO | __GFP_NOWARN; - size_t size = (size_t) mr->nr_pages << PAGE_SHIFT; + size_t size = io_region_size(mr); unsigned long nr_allocated; struct page **pages; diff --git a/io_uring/memmap.h b/io_uring/memmap.h index a6c63ca2c6f1..a39d9e518905 100644 --- a/io_uring/memmap.h +++ b/io_uring/memmap.h @@ -43,4 +43,9 @@ static inline void io_region_publish(struct io_ring_ctx *ctx, *dst_region = *src_region; } +static inline size_t io_region_size(struct io_mapped_region *mr) +{ + return (size_t) mr->nr_pages << PAGE_SHIFT; +} + #endif