Re: [PATCH v2 12/13] mm: Move __alloc_pages() to mm/internal.h

From: Brendan Jackman

Date: Mon Jun 22 2026 - 07:15:01 EST


On Mon Jun 22, 2026 at 10:21 AM UTC, sashiko-bot wrote:
> Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
> - [Low] Missing EXPORT_SYMBOL for out-of-line alloc_pages_node_noprof() causes widespread module linker errors.
> --
>
> commit 42f7742177beb0066c00a7aa081250feb5859171
> Author: Brendan Jackman <jackmanb@xxxxxxxxxx>
>
> mm: Move __alloc_pages() to mm/internal.h
>
> This commit moves the __alloc_pages() family of internal functions to
> mm/internal.h to restrict them to the mm subsystem. It also moves
> alloc_pages_node_noprof() out-of-line into mm/page_alloc.c since it
> depends on __alloc_pages_noprof().
>
>> diff --git a/mm/page_alloc.c b/mm/page_alloc.c
>> index 36f0d625a4390..38238203ef7b0 100644
>> --- a/mm/page_alloc.c
>> +++ b/mm/page_alloc.c
>
> [ ... ]
>
>> @@ -5419,6 +5419,17 @@ struct page *__alloc_pages_noprof(gfp_t gfp, unsigned int order,
>> }
>> EXPORT_SYMBOL(__alloc_pages_noprof);
>
> [Severity: Low]
> Since __alloc_pages_noprof() is no longer visible outside of mm/, should this
> EXPORT_SYMBOL be removed?

Yep.

>> +struct page *alloc_pages_node_noprof(int nid, gfp_t gfp_mask, unsigned int order)
>> +{
>> + if (nid == NUMA_NO_NODE)
>> + nid = numa_mem_id();
>> +
>> + VM_BUG_ON(nid < 0 || nid >= MAX_NUMNODES);
>> + warn_if_node_offline(nid, gfp_mask);
>> +
>> + return __alloc_pages_noprof(gfp_mask, order, nid, NULL);
>> +}
>
> [Severity: Low]
> Does this code cause module linker errors? alloc_pages_node_noprof() is called
> by the alloc_pages_node() macro in include/linux/gfp.h, but it does not have
> an EXPORT_SYMBOL.

Yep. Doesn't show up in defconfig but if you set CONFIG_BLK_DEV_UBLK=m
then:

ERROR: modpost: "alloc_pages_node_noprof" [drivers/block/ublk_drv.ko] undefined!