Commit 4aed5b4e authored by Pavel Begunkov's avatar Pavel Begunkov Committed by Jens Axboe
Browse files

io_uring: add helper calculating region byte size



There has been type related issues with region size calculation, add an
utility helper function that returns the size and handles type
conversions right.

Signed-off-by: default avatarPavel Begunkov <asml.silence@gmail.com>
Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
parent 21bd7b14
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -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;

+5 −0
Original line number Diff line number Diff line
@@ -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