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

From: Hao Ge

Date: Tue Jun 23 2026 - 02:51:17 EST


Hi Brendan


On 2026/6/22 19:14, Brendan Jackman wrote:
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!

I was about to report this linker issue myself, but Sashiko caught it first.

While testing your patch on top of mm-new, I hit the exact same modpost

undefined symbol error as mentioned above:

  MODPOST Module.symvers
ERROR: modpost: "alloc_pages_node_noprof" [arch/x86/kvm/kvm-intel.ko] undefined!
ERROR: modpost: "alloc_pages_node_noprof" [arch/x86/kvm/kvm-amd.ko] undefined!
ERROR: modpost: "alloc_pages_node_noprof" [drivers/gpu/drm/ttm/ttm.ko] undefined!
ERROR: modpost: "alloc_pages_node_noprof" [drivers/misc/sgi-xp/xpc.ko] undefined!
ERROR: modpost: "alloc_pages_node_noprof" [drivers/misc/sgi-gru/gru.ko] undefined!
ERROR: modpost: "alloc_pages_node_noprof" [drivers/net/ethernet/amazon/ena/ena.ko] undefined!
ERROR: modpost: "alloc_pages_node_noprof" [drivers/net/ethernet/amd/xgbe/amd-xgbe.ko] undefined!
ERROR: modpost: "alloc_pages_node_noprof" [drivers/net/ethernet/aquantia/atlantic/atlantic.ko] undefined!
ERROR: modpost: "alloc_pages_node_noprof" [drivers/net/ethernet/chelsio/cxgb4/cxgb4.ko] undefined!
ERROR: modpost: "alloc_pages_node_noprof" [drivers/net/ethernet/chelsio/cxgb4vf/cxgb4vf.ko] undefined!
WARNING: modpost: suppressed 14 unresolved symbol warnings because there were too many)

I'll resolve this locally and retest the patch afterward.

Thanks

Best Regards

Hao