Re: [PATCH] mm/vmalloc: Fix incorrect size reporting on allocation failure
From: Mikulas Patocka
Date: Mon Mar 02 2026 - 12:41:53 EST
On Mon, 2 Mar 2026, Uladzislau Rezki (Sony) wrote:
> When __vmalloc_area_node() fails to allocate pages, the failure
> message may report an incorrect allocation size, for example:
>
> vmalloc error: size 0, failed to allocate pages, ...
>
> This happens because the warning prints area->nr_pages * PAGE_SIZE.
> At this point, area->nr_pages may be zero or partly populated thus
> it is not valid.
>
> Report the originally requested allocation size instead by using
> nr_small_pages * PAGE_SIZE, which reflects the actual number of
> pages being requested by user.
>
> Signed-off-by: Uladzislau Rezki (Sony) <urezki@xxxxxxxxx>
> ---
> mm/vmalloc.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/mm/vmalloc.c b/mm/vmalloc.c
> index 61caa55a4402..a06f4b3ea367 100644
> --- a/mm/vmalloc.c
> +++ b/mm/vmalloc.c
> @@ -3901,7 +3901,7 @@ static void *__vmalloc_area_node(struct vm_struct *area, gfp_t gfp_mask,
> if (!fatal_signal_pending(current) && page_order == 0)
> warn_alloc(gfp_mask, NULL,
> "vmalloc error: size %lu, failed to allocate pages",
> - area->nr_pages * PAGE_SIZE);
> + nr_small_pages * PAGE_SIZE);
> goto fail;
> }
>
> --
> 2.47.3
Reviewed-by: Mikulas Patocka <mpatocka@xxxxxxxxxx>
Mikulas