mm/sparse.c:318:undefined reference to `section_nr_vmemmap_pages'

kernel test robot <[email protected]> Wed, 05 Aug 2026 16:29:00 +0200
Newsgroups dev.linux.lists.oe-kbuild-all
Message-ID <[email protected]>
tree:   https://github.com/intel-lab-lkp/linux/commits/Muchun-Song/mm-sparse-relax-struct-mem_section-size-constraints/20260804-161543
head:   9fb4c3dd521d645a8c059d98341ac40c994553fd
commit: 1fec22c19562335916faf464266d71391544c6d7 mm/sparse-vmemmap: support section-based vmemmap optimization
date:   30 hours ago
config: s390-allnoconfig-bpf (https://download.01.org/0day-ci/archive/20260805/[email protected]/config)
compiler: s390x-linux-gnu-gcc (Debian 14.2.0-19) 14.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260805/[email protected]/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <[email protected]>
| Closes: https://lore.kernel.org/oe-kbuild-all/[email protected]/

All errors (new ones prefixed by >>):

   s390x-linux-gnu-ld: mm/sparse.o: in function `sparse_init_nid':
>> mm/sparse.c:318:(.init.text+0x24c): undefined reference to `section_nr_vmemmap_pages'


vim +318 mm/sparse.c

   287	
   288	/*
   289	 * Initialize sparse on a specific node. The node spans [pnum_begin, pnum_end)
   290	 * And number of present sections in this node is map_count.
   291	 */
   292	static void __init sparse_init_nid(int nid, unsigned long pnum_begin,
   293					   unsigned long pnum_end,
   294					   unsigned long map_count)
   295	{
   296		unsigned long pnum;
   297	
   298		if (sparse_usage_init(nid, map_count))
   299			panic("Failed to allocate usemap for node %d\n", nid);
   300	
   301		sparse_vmemmap_init_nid_early(nid);
   302	
   303		for_each_present_section_nr(pnum_begin, pnum) {
   304			struct mem_section *ms;
   305			unsigned long pfn = section_nr_to_pfn(pnum);
   306	
   307			if (pnum >= pnum_end)
   308				break;
   309	
   310			ms = __nr_to_section(pnum);
   311			if (!preinited_vmemmap_section(ms)) {
   312				struct page *map;
   313	
   314				map = __populate_section_memmap(pfn, PAGES_PER_SECTION,
   315								nid, NULL, NULL);
   316				if (!map)
   317					panic("Failed to allocate memmap for section %lu\n", pnum);
 > 318				memmap_boot_pages_add(section_nr_vmemmap_pages(pfn, PAGES_PER_SECTION,
   319									       NULL, NULL));
   320				sparse_init_early_section(nid, map, pnum, 0);
   321			}
   322		}
   323		sparse_usage_fini();
   324	}
   325	

--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki