[davidhildenbrand:get_dummy 14/21] include/linux/pgtable.h:2351:6: error: call to undeclared function 'mm_pmd_folded'; ISO C99 and later do not support implicit function declarations
kernel test robot <[email protected]>
| Newsgroups | dev.linux.lists.oe-kbuild-all,dev.linux.lists.llvm |
|---|---|
| Message-ID | <[email protected]> |
Hi Yeoreum, FYI, the error/warning was bisected to this commit, please ignore it if it's irrelevant. tree: https://github.com/davidhildenbrand/linux get_dummy head: 112a153a97494becabd764fe6257578ba908801f commit: db92928e80f5332bbfca9a70beaef62d46a0c9de [14/21] x86: mm: carve out the generic compile-time folded pgtable case in effective_prot() config: arm-allnoconfig (https://download.01.org/0day-ci/archive/20260827/[email protected]/config) compiler: clang version 17.0.6 (https://github.com/llvm/llvm-project 6009708b4367171ccdbf4b5905cb6a803753fe18) reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260827/[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/arm/kernel/asm-offsets.c:14: In file included from include/linux/mm.h:31: >> include/linux/pgtable.h:2351:6: error: call to undeclared function 'mm_pmd_folded'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration] 2351 | if (mm_pmd_folded(mm)) | ^ >> include/linux/pgtable.h:2353:6: error: call to undeclared function 'mm_pud_folded'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration] 2353 | if (mm_pud_folded(mm)) | ^ >> include/linux/pgtable.h:2355:6: error: call to undeclared function 'mm_p4d_folded'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration] 2355 | if (mm_p4d_folded(mm)) | ^ In file included from arch/arm/kernel/asm-offsets.c:14: 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:6: include/linux/signal.h:98:11: warning: array index 3 is past the end of the array (that has type 'unsigned long[2]') [-Warray-bounds] 98 | return (set->sig[3] | set->sig[2] | | ^ ~ arch/arm/include/asm/signal.h:17:2: note: array 'sig' declared here 17 | unsigned long sig[_NSIG_WORDS]; | ^ In file included from arch/arm/kernel/asm-offsets.c:14: 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:6: include/linux/signal.h:98:25: warning: array index 2 is past the end of the array (that has type 'unsigned long[2]') [-Warray-bounds] 98 | return (set->sig[3] | set->sig[2] | | ^ ~ arch/arm/include/asm/signal.h:17:2: note: array 'sig' declared here 17 | unsigned long sig[_NSIG_WORDS]; | ^ In file included from arch/arm/kernel/asm-offsets.c:14: 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:6: include/linux/signal.h:114:11: warning: array index 3 is past the end of the array (that has type 'const unsigned long[2]') [-Warray-bounds] 114 | return (set1->sig[3] == set2->sig[3]) && | ^ ~ arch/arm/include/asm/signal.h:17:2: note: array 'sig' declared here 17 | unsigned long sig[_NSIG_WORDS]; | ^ In file included from arch/arm/kernel/asm-offsets.c:14: 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:6: include/linux/signal.h:114:27: warning: array index 3 is past the end of the array (that has type 'const unsigned long[2]') [-Warray-bounds] 114 | return (set1->sig[3] == set2->sig[3]) && | ^ ~ arch/arm/include/asm/signal.h:17:2: note: array 'sig' declared here 17 | unsigned long sig[_NSIG_WORDS]; | ^ In file included from arch/arm/kernel/asm-offsets.c:14: 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:6: include/linux/signal.h:115:5: warning: array index 2 is past the end of the array (that has type 'const unsigned long[2]') [-Warray-bounds] 115 | (set1->sig[2] == set2->sig[2]) && | ^ ~ arch/arm/include/asm/signal.h:17:2: note: array 'sig' declared here 17 | unsigned long sig[_NSIG_WORDS]; | ^ In file included from arch/arm/kernel/asm-offsets.c:14: 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:6: include/linux/signal.h:115:21: warning: array index 2 is past the end of the array (that has type 'const unsigned long[2]') [-Warray-bounds] 115 | (set1->sig[2] == set2->sig[2]) && | ^ ~ arch/arm/include/asm/signal.h:17:2: note: array 'sig' declared here 17 | unsigned long sig[_NSIG_WORDS]; | ^ In file included from arch/arm/kernel/asm-offsets.c:14: 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:6: include/linux/signal.h:157:1: warning: array index 3 is past the end of the array (that has type 'const unsigned long[2]') [-Warray-bounds] 157 | _SIG_SET_BINOP(sigorsets, _sig_or) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/signal.h:138:8: note: expanded from macro '_SIG_SET_BINOP' 138 | a3 = a->sig[3]; a2 = a->sig[2]; \ | ^ ~ arch/arm/include/asm/signal.h:17:2: note: array 'sig' declared here 17 | unsigned long sig[_NSIG_WORDS]; | ^ In file included from arch/arm/kernel/asm-offsets.c:14: 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:6: include/linux/signal.h:157:1: warning: array index 2 is past the end of the array (that has type 'const unsigned long[2]') [-Warray-bounds] 157 | _SIG_SET_BINOP(sigorsets, _sig_or) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/signal.h:138:24: note: expanded from macro '_SIG_SET_BINOP' 138 | a3 = a->sig[3]; a2 = a->sig[2]; \ | ^ ~ arch/arm/include/asm/signal.h:17:2: note: array 'sig' declared here 17 | unsigned long sig[_NSIG_WORDS]; | ^ In file included from arch/arm/kernel/asm-offsets.c:14: 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:6: include/linux/signal.h:157:1: warning: array index 3 is past the end of the array (that has type 'const unsigned long[2]') [-Warray-bounds] 157 | _SIG_SET_BINOP(sigorsets, _sig_or) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/signal.h:139:8: note: expanded from macro '_SIG_SET_BINOP' 139 | b3 = b->sig[3]; b2 = b->sig[2]; \ | ^ ~ arch/arm/include/asm/signal.h:17:2: note: array 'sig' declared here 17 | unsigned long sig[_NSIG_WORDS]; vim +/mm_pmd_folded +2351 include/linux/pgtable.h 2331 2332 /** 2333 * mm_first_pgtable_level - return the first non-folded page-table level 2334 * @mm: The mm structure. 2335 * 2336 * With runtime- or compile-time folded page tables, page-table walkers 2337 * effectively skip the folded top-level page tables, treating them as 2338 * always-present entries pointing to the next lower-level page table. 2339 * 2340 * Return the first page-table level in @mm that is not folded. 2341 * 2342 * Return: the first non-folded page-table level. 2343 */ 2344 static inline enum pgtable_level mm_first_pgtable_level(struct mm_struct *mm) 2345 { 2346 /* 2347 * "PMD folded" actually means "PMD is folded into PUD", and 2348 * pud_present() etc. are hard-coded to look like present page table 2349 * levels, whereby pmd_present() etc. contain real logic. 2350 */ > 2351 if (mm_pmd_folded(mm)) 2352 return PGTABLE_LEVEL_PMD; > 2353 if (mm_pud_folded(mm)) 2354 return PGTABLE_LEVEL_PUD; > 2355 if (mm_p4d_folded(mm)) 2356 return PGTABLE_LEVEL_P4D; 2357 return PGTABLE_LEVEL_PGD; 2358 } 2359 -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki