Hi Muchun, kernel test robot noticed the following build errors:
[auto build test ERROR on dba8aba0a9a00ff781c03d82ae534fc6f8c2e263] url: https://github.com/intel-lab-lkp/linux/commits/Muchun-Song/powerpc-mm-make-vmemmap_populate_compound_pages-static/20261105-141213 base: dba8aba0a9a00ff781c03d82ae534fc6f8c2e263 patch link: https://lore.kernel.org/r/20261105061217.13302-3-songmuchun%40bytedance.com patch subject: [PATCH v2 2/5] powerpc/mm: drop powerpc vmemmap_can_optimize() config: loongarch-allmodconfig (https://download.01.org/0day-ci/archive/20261105/[email protected]/config) compiler: clang version 19.1.7 (https://github.com/llvm/llvm-project cd708029e0b2869e80abe31ddb175f7c35361f90) reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20261105/[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 >>): In file included from arch/loongarch/kernel/asm-offsets.c:11: In file included from include/linux/mm.h:31: In file included from include/linux/pgtable.h:6: In file included from arch/loongarch/include/asm/pgtable.h:75: include/linux/vmemmap-optimization.h:62:9: error: call to undeclared function 'vmemmap_optimizable_order'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration] 62 | return vmemmap_optimizable_order(section_compound_order(section)); | ^ >> include/linux/vmemmap-optimization.h:68:22: error: use of undeclared >> identifier 'vmemmap'; did you mean 'mem_map'? 68 | unsigned long pfn = page_to_pfn((struct page *)start); | ^ include/asm-generic/memory_model.h:73:21: note: expanded from macro 'page_to_pfn' 73 | #define page_to_pfn __page_to_pfn | ^ include/asm-generic/memory_model.h:47:54: note: expanded from macro '__page_to_pfn' 47 | #define __page_to_pfn(page) (unsigned long)((page) - vmemmap) | ^ include/linux/mmzone.h:1452:21: note: 'mem_map' declared here 1452 | extern struct page *mem_map; | ^ In file included from arch/loongarch/kernel/asm-offsets.c:11: In file included from include/linux/mm.h:31: In file included from include/linux/pgtable.h:6: In file included from arch/loongarch/include/asm/pgtable.h:75: include/linux/vmemmap-optimization.h:138:20: error: conflicting types for 'vmemmap_optimizable_order' 138 | static inline bool vmemmap_optimizable_order(unsigned int order) | ^ include/linux/vmemmap-optimization.h:62:9: note: previous implicit declaration is here 62 | return vmemmap_optimizable_order(section_compound_order(section)); | ^ In file included from arch/loongarch/kernel/asm-offsets.c:11: In file included from include/linux/mm.h:36: In file included from include/linux/rcuwait.h:6: In file included from include/linux/sched/signal.h:7: include/linux/signal.h:98:11: warning: array index 3 is past the end of the array (that has type 'unsigned long[1]') [-Warray-bounds] 98 | return (set->sig[3] | set->sig[2] | | ^ ~ include/uapi/asm-generic/signal.h:62:2: note: array 'sig' declared here 62 | unsigned long sig[_NSIG_WORDS]; | ^ In file included from arch/loongarch/kernel/asm-offsets.c:11: In file included from include/linux/mm.h:36: In file included from include/linux/rcuwait.h:6: In file included from include/linux/sched/signal.h:7: include/linux/signal.h:98:25: warning: array index 2 is past the end of the array (that has type 'unsigned long[1]') [-Warray-bounds] 98 | return (set->sig[3] | set->sig[2] | | ^ ~ include/uapi/asm-generic/signal.h:62:2: note: array 'sig' declared here 62 | unsigned long sig[_NSIG_WORDS]; | ^ In file included from arch/loongarch/kernel/asm-offsets.c:11: In file included from include/linux/mm.h:36: In file included from include/linux/rcuwait.h:6: In file included from include/linux/sched/signal.h:7: include/linux/signal.h:99:4: warning: array index 1 is past the end of the array (that has type 'unsigned long[1]') [-Warray-bounds] 99 | set->sig[1] | set->sig[0]) == 0; | ^ ~ include/uapi/asm-generic/signal.h:62:2: note: array 'sig' declared here 62 | unsigned long sig[_NSIG_WORDS]; | ^ In file included from arch/loongarch/kernel/asm-offsets.c:11: In file included from include/linux/mm.h:36: In file included from include/linux/rcuwait.h:6: In file included from include/linux/sched/signal.h:7: include/linux/signal.h:101:11: warning: array index 1 is past the end of the array (that has type 'unsigned long[1]') [-Warray-bounds] 101 | return (set->sig[1] | set->sig[0]) == 0; | ^ ~ include/uapi/asm-generic/signal.h:62:2: note: array 'sig' declared here 62 | unsigned long sig[_NSIG_WORDS]; | ^ In file included from arch/loongarch/kernel/asm-offsets.c:11: In file included from include/linux/mm.h:36: In file included from include/linux/rcuwait.h:6: In file included from include/linux/sched/signal.h:7: include/linux/signal.h:114:11: warning: array index 3 is past the end of the array (that has type 'const unsigned long[1]') [-Warray-bounds] 114 | return (set1->sig[3] == set2->sig[3]) && | ^ ~ include/uapi/asm-generic/signal.h:62:2: note: array 'sig' declared here 62 | unsigned long sig[_NSIG_WORDS]; | ^ In file included from arch/loongarch/kernel/asm-offsets.c:11: In file included from include/linux/mm.h:36: In file included from include/linux/rcuwait.h:6: In file included from include/linux/sched/signal.h:7: include/linux/signal.h:114:27: warning: array index 3 is past the end of the array (that has type 'const unsigned long[1]') [-Warray-bounds] 114 | return (set1->sig[3] == set2->sig[3]) && | ^ ~ include/uapi/asm-generic/signal.h:62:2: note: array 'sig' declared here 62 | unsigned long sig[_NSIG_WORDS]; | ^ In file included from arch/loongarch/kernel/asm-offsets.c:11: In file included from include/linux/mm.h:36: In file included from include/linux/rcuwait.h:6: In file included from include/linux/sched/signal.h:7: include/linux/signal.h:115:5: warning: array index 2 is past the end of the array (that has type 'const unsigned long[1]') [-Warray-bounds] 115 | (set1->sig[2] == set2->sig[2]) && | ^ ~ include/uapi/asm-generic/signal.h:62:2: note: array 'sig' declared here 62 | unsigned long sig[_NSIG_WORDS]; | ^ In file included from arch/loongarch/kernel/asm-offsets.c:11: In file included from include/linux/mm.h:36: In file included from include/linux/rcuwait.h:6: In file included from include/linux/sched/signal.h:7: include/linux/signal.h:115:21: warning: array index 2 is past the end of the array (that has type 'const unsigned long[1]') [-Warray-bounds] 115 | (set1->sig[2] == set2->sig[2]) && | ^ ~ include/uapi/asm-generic/signal.h:62:2: note: array 'sig' declared here 62 | unsigned long sig[_NSIG_WORDS]; vim +68 include/linux/vmemmap-optimization.h 64 65 static inline void section_vmemmap_optimization_disable(unsigned long start, 66 unsigned long end) 67 { > 68 unsigned long pfn = page_to_pfn((struct page *)start); 69 unsigned long nr_pages = (end - start) / sizeof(struct page); 70 struct mem_section *section = __pfn_to_section(pfn); 71 72 if (nr_pages < PAGES_PER_SECTION) { 73 VM_WARN_ON_ONCE(section_vmemmap_optimizable(section)); 74 return; 75 } 76 77 VM_WARN_ON_ONCE(!IS_ALIGNED(pfn | nr_pages, PAGES_PER_SECTION)); 78 section_set_compound_order(section, 0); 79 } 80 -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki
