]> Gentwo Git Trees - linux/.git/commitdiff
io_uring/memmap: return bool from io_mem_alloc_compound()
authorCaleb Sander Mateos <csander@purestorage.com>
Wed, 15 Oct 2025 17:25:54 +0000 (11:25 -0600)
committerJens Axboe <axboe@kernel.dk>
Tue, 4 Nov 2025 16:32:09 +0000 (09:32 -0700)
io_mem_alloc_compound() returns either ERR_PTR(-ENOMEM) or a virtual
address for the allocated memory, but its caller just checks whether the
result is an error. Return a bool success value instead.

Signed-off-by: Caleb Sander Mateos <csander@purestorage.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
io_uring/memmap.c

index aa388ecd4754e9f584e109e8644ce4bb5cda6a04..67b7b17ece319b553d595217eb14805e2aeb1886 100644 (file)
 #include "rsrc.h"
 #include "zcrx.h"
 
-static void *io_mem_alloc_compound(struct page **pages, int nr_pages,
-                                  size_t size, gfp_t gfp)
+static bool io_mem_alloc_compound(struct page **pages, int nr_pages,
+                                 size_t size, gfp_t gfp)
 {
        struct page *page;
        int i, order;
 
        order = get_order(size);
        if (order > MAX_PAGE_ORDER)
-               return ERR_PTR(-ENOMEM);
+               return false;
        else if (order)
                gfp |= __GFP_COMP;
 
        page = alloc_pages(gfp, order);
        if (!page)
-               return ERR_PTR(-ENOMEM);
+               return false;
 
        for (i = 0; i < nr_pages; i++)
                pages[i] = page + i;
 
-       return page_address(page);
+       return true;
 }
 
 struct page **io_pin_pages(unsigned long uaddr, unsigned long len, int *npages)
@@ -159,14 +159,12 @@ static int io_region_allocate_pages(struct io_ring_ctx *ctx,
        size_t size = (size_t) mr->nr_pages << PAGE_SHIFT;
        unsigned long nr_allocated;
        struct page **pages;
-       void *p;
 
        pages = kvmalloc_array(mr->nr_pages, sizeof(*pages), gfp);
        if (!pages)
                return -ENOMEM;
 
-       p = io_mem_alloc_compound(pages, mr->nr_pages, size, gfp);
-       if (!IS_ERR(p)) {
+       if (io_mem_alloc_compound(pages, mr->nr_pages, size, gfp)) {
                mr->flags |= IO_REGION_F_SINGLE_REF;
                goto done;
        }