summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--io_uring/memmap.c4
-rw-r--r--io_uring/memmap.h5
2 files changed, 7 insertions, 2 deletions
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