Hi Anshuman, kernel test robot noticed the following build errors: [auto build test ERROR on char-misc/char-misc-testing] [also build test ERROR on char-misc/char-misc-next char-misc/char-misc-linus brauner-vfs/vfs.all dennis-percpu/for-next linus/master v6.11] [cannot apply to akpm-mm/mm-everything next-20240918] [If your patch is applied to the wrong git tree, kindly drop us a note. And when submitting patch, we suggest to use '--base' as documented in https://git-scm.com/docs/git-format-patch#_base_tree_information] url: https://github.com/intel-lab-lkp/linux/commits/Anshuman-Khandual/m68k-mm-Change-pmd_val/20240917-153331 base: char-misc/char-misc-testing patch link: https://lore.kernel.org/r/20240917073117.1531207-8-anshuman.khandual%40arm.com patch subject: [PATCH V2 7/7] mm: Use pgdp_get() for accessing PGD entries config: arm-footbridge_defconfig (https://download.01.org/0day-ci/archive/20240919/202409190310.ViHBRe12-lkp@xxxxxxxxx/config) compiler: clang version 20.0.0git (https://github.com/llvm/llvm-project 8663a75fa2f31299ab8d1d90288d9df92aadee88) reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20240919/202409190310.ViHBRe12-lkp@xxxxxxxxx/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 <lkp@xxxxxxxxx> | Closes: https://lore.kernel.org/oe-kbuild-all/202409190310.ViHBRe12-lkp@xxxxxxxxx/ All errors (new ones prefixed by >>): In file included from arch/arm/kernel/asm-offsets.c:12: In file included from include/linux/mm.h:30: >> include/linux/pgtable.h:1245:18: error: use of undeclared identifier 'pgdp'; did you mean 'pgd'? 1245 | pgd_t old_pgd = pgdp_get(pgd); | ^ arch/arm/include/asm/pgtable.h:154:36: note: expanded from macro 'pgdp_get' 154 | #define pgdp_get(pgpd) READ_ONCE(*pgdp) | ^ include/linux/pgtable.h:1243:48: note: 'pgd' declared here 1243 | static inline int pgd_none_or_clear_bad(pgd_t *pgd) | ^ >> include/linux/pgtable.h:1245:18: error: use of undeclared identifier 'pgdp'; did you mean 'pgd'? 1245 | pgd_t old_pgd = pgdp_get(pgd); | ^ arch/arm/include/asm/pgtable.h:154:36: note: expanded from macro 'pgdp_get' 154 | #define pgdp_get(pgpd) READ_ONCE(*pgdp) | ^ include/linux/pgtable.h:1243:48: note: 'pgd' declared here 1243 | static inline int pgd_none_or_clear_bad(pgd_t *pgd) | ^ >> include/linux/pgtable.h:1245:18: error: use of undeclared identifier 'pgdp'; did you mean 'pgd'? 1245 | pgd_t old_pgd = pgdp_get(pgd); | ^ arch/arm/include/asm/pgtable.h:154:36: note: expanded from macro 'pgdp_get' 154 | #define pgdp_get(pgpd) READ_ONCE(*pgdp) | ^ include/linux/pgtable.h:1243:48: note: 'pgd' declared here 1243 | static inline int pgd_none_or_clear_bad(pgd_t *pgd) | ^ >> include/linux/pgtable.h:1245:18: error: use of undeclared identifier 'pgdp'; did you mean 'pgd'? 1245 | pgd_t old_pgd = pgdp_get(pgd); | ^ arch/arm/include/asm/pgtable.h:154:36: note: expanded from macro 'pgdp_get' 154 | #define pgdp_get(pgpd) READ_ONCE(*pgdp) | ^ include/linux/pgtable.h:1243:48: note: 'pgd' declared here 1243 | static inline int pgd_none_or_clear_bad(pgd_t *pgd) | ^ >> include/linux/pgtable.h:1245:18: error: use of undeclared identifier 'pgdp'; did you mean 'pgd'? 1245 | pgd_t old_pgd = pgdp_get(pgd); | ^ arch/arm/include/asm/pgtable.h:154:36: note: expanded from macro 'pgdp_get' 154 | #define pgdp_get(pgpd) READ_ONCE(*pgdp) | ^ include/linux/pgtable.h:1243:48: note: 'pgd' declared here 1243 | static inline int pgd_none_or_clear_bad(pgd_t *pgd) | ^ >> include/linux/pgtable.h:1245:18: error: use of undeclared identifier 'pgdp'; did you mean 'pgd'? 1245 | pgd_t old_pgd = pgdp_get(pgd); | ^ arch/arm/include/asm/pgtable.h:154:36: note: expanded from macro 'pgdp_get' 154 | #define pgdp_get(pgpd) READ_ONCE(*pgdp) | ^ include/linux/pgtable.h:1243:48: note: 'pgd' declared here 1243 | static inline int pgd_none_or_clear_bad(pgd_t *pgd) | ^ >> include/linux/pgtable.h:1245:18: error: use of undeclared identifier 'pgdp'; did you mean 'pgd'? 1245 | pgd_t old_pgd = pgdp_get(pgd); | ^ arch/arm/include/asm/pgtable.h:154:36: note: expanded from macro 'pgdp_get' 154 | #define pgdp_get(pgpd) READ_ONCE(*pgdp) | ^ include/linux/pgtable.h:1243:48: note: 'pgd' declared here 1243 | static inline int pgd_none_or_clear_bad(pgd_t *pgd) | ^ >> include/linux/pgtable.h:1245:18: error: use of undeclared identifier 'pgdp'; did you mean 'pgd'? 1245 | pgd_t old_pgd = pgdp_get(pgd); | ^ arch/arm/include/asm/pgtable.h:154:36: note: expanded from macro 'pgdp_get' 154 | #define pgdp_get(pgpd) READ_ONCE(*pgdp) | ^ include/linux/pgtable.h:1243:48: note: 'pgd' declared here 1243 | static inline int pgd_none_or_clear_bad(pgd_t *pgd) | ^ >> include/linux/pgtable.h:1245:8: error: array initializer must be an initializer list or wide string literal 1245 | pgd_t old_pgd = pgdp_get(pgd); | ^ In file included from arch/arm/kernel/asm-offsets.c:12: In file included from include/linux/mm.h:1131: In file included from include/linux/huge_mm.h:8: In file included from include/linux/fs.h:33: In file included from include/linux/percpu-rwsem.h:7: 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:12: In file included from include/linux/mm.h:1131: In file included from include/linux/huge_mm.h:8: In file included from include/linux/fs.h:33: In file included from include/linux/percpu-rwsem.h:7: 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:12: In file included from include/linux/mm.h:1131: In file included from include/linux/huge_mm.h:8: In file included from include/linux/fs.h:33: In file included from include/linux/percpu-rwsem.h:7: 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:12: In file included from include/linux/mm.h:1131: In file included from include/linux/huge_mm.h:8: In file included from include/linux/fs.h:33: In file included from include/linux/percpu-rwsem.h:7: 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:12: In file included from include/linux/mm.h:1131: In file included from include/linux/huge_mm.h:8: In file included from include/linux/fs.h:33: In file included from include/linux/percpu-rwsem.h:7: 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:12: In file included from include/linux/mm.h:1131: In file included from include/linux/huge_mm.h:8: In file included from include/linux/fs.h:33: In file included from include/linux/percpu-rwsem.h:7: 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:12: In file included from include/linux/mm.h:1131: In file included from include/linux/huge_mm.h:8: In file included from include/linux/fs.h:33: In file included from include/linux/percpu-rwsem.h:7: 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:12: In file included from include/linux/mm.h:1131: In file included from include/linux/huge_mm.h:8: In file included from include/linux/fs.h:33: -- 163 | _SIG_SET_BINOP(sigandnsets, _sig_andn) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/signal.h:140:3: note: expanded from macro '_SIG_SET_BINOP' 140 | r->sig[3] = op(a3, b3); \ | ^ ~ 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:12: In file included from include/linux/mm.h:1131: In file included from include/linux/huge_mm.h:8: In file included from include/linux/fs.h:33: In file included from include/linux/percpu-rwsem.h:7: In file included from include/linux/rcuwait.h:6: In file included from include/linux/sched/signal.h:6: include/linux/signal.h:163:1: warning: array index 2 is past the end of the array (that has type 'unsigned long[2]') [-Warray-bounds] 163 | _SIG_SET_BINOP(sigandnsets, _sig_andn) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/signal.h:141:3: note: expanded from macro '_SIG_SET_BINOP' 141 | r->sig[2] = op(a2, b2); \ | ^ ~ 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:12: In file included from include/linux/mm.h:1131: In file included from include/linux/huge_mm.h:8: In file included from include/linux/fs.h:33: In file included from include/linux/percpu-rwsem.h:7: In file included from include/linux/rcuwait.h:6: In file included from include/linux/sched/signal.h:6: include/linux/signal.h:187:1: warning: array index 3 is past the end of the array (that has type 'unsigned long[2]') [-Warray-bounds] 187 | _SIG_SET_OP(signotset, _sig_not) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/signal.h:174:27: note: expanded from macro '_SIG_SET_OP' 174 | case 4: set->sig[3] = op(set->sig[3]); \ | ^ ~ include/linux/signal.h:186:24: note: expanded from macro '_sig_not' 186 | #define _sig_not(x) (~(x)) | ^ 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:12: In file included from include/linux/mm.h:1131: In file included from include/linux/huge_mm.h:8: In file included from include/linux/fs.h:33: In file included from include/linux/percpu-rwsem.h:7: In file included from include/linux/rcuwait.h:6: In file included from include/linux/sched/signal.h:6: include/linux/signal.h:187:1: warning: array index 3 is past the end of the array (that has type 'unsigned long[2]') [-Warray-bounds] 187 | _SIG_SET_OP(signotset, _sig_not) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/signal.h:174:10: note: expanded from macro '_SIG_SET_OP' 174 | case 4: set->sig[3] = op(set->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:12: In file included from include/linux/mm.h:1131: In file included from include/linux/huge_mm.h:8: In file included from include/linux/fs.h:33: In file included from include/linux/percpu-rwsem.h:7: In file included from include/linux/rcuwait.h:6: In file included from include/linux/sched/signal.h:6: include/linux/signal.h:187:1: warning: array index 2 is past the end of the array (that has type 'unsigned long[2]') [-Warray-bounds] 187 | _SIG_SET_OP(signotset, _sig_not) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/signal.h:175:20: note: expanded from macro '_SIG_SET_OP' 175 | set->sig[2] = op(set->sig[2]); \ | ^ ~ include/linux/signal.h:186:24: note: expanded from macro '_sig_not' 186 | #define _sig_not(x) (~(x)) | ^ 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:12: In file included from include/linux/mm.h:1131: In file included from include/linux/huge_mm.h:8: In file included from include/linux/fs.h:33: In file included from include/linux/percpu-rwsem.h:7: In file included from include/linux/rcuwait.h:6: In file included from include/linux/sched/signal.h:6: include/linux/signal.h:187:1: warning: array index 2 is past the end of the array (that has type 'unsigned long[2]') [-Warray-bounds] 187 | _SIG_SET_OP(signotset, _sig_not) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/signal.h:175:3: note: expanded from macro '_SIG_SET_OP' 175 | set->sig[2] = op(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:12: In file included from include/linux/mm.h:2232: include/linux/vmstat.h:517:36: warning: arithmetic between different enumeration types ('enum node_stat_item' and 'enum lru_list') [-Wenum-enum-conversion] 517 | return node_stat_name(NR_LRU_BASE + lru) + 3; // skip "nr_" | ~~~~~~~~~~~ ^ ~~~ In file included from arch/arm/kernel/asm-offsets.c:12: >> include/linux/mm.h:2822:28: error: use of undeclared identifier 'pgdp'; did you mean 'pgd'? 2822 | return (unlikely(pgd_none(pgdp_get(pgd))) && __p4d_alloc(mm, pgd, address)) ? | ^ arch/arm/include/asm/pgtable.h:154:36: note: expanded from macro 'pgdp_get' 154 | #define pgdp_get(pgpd) READ_ONCE(*pgdp) | ^ include/linux/mm.h:2819:61: note: 'pgd' declared here 2819 | static inline p4d_t *p4d_alloc(struct mm_struct *mm, pgd_t *pgd, | ^ >> include/linux/mm.h:2822:28: error: use of undeclared identifier 'pgdp'; did you mean 'pgd'? 2822 | return (unlikely(pgd_none(pgdp_get(pgd))) && __p4d_alloc(mm, pgd, address)) ? | ^ arch/arm/include/asm/pgtable.h:154:36: note: expanded from macro 'pgdp_get' 154 | #define pgdp_get(pgpd) READ_ONCE(*pgdp) | ^ include/linux/mm.h:2819:61: note: 'pgd' declared here 2819 | static inline p4d_t *p4d_alloc(struct mm_struct *mm, pgd_t *pgd, | ^ >> include/linux/mm.h:2822:28: error: use of undeclared identifier 'pgdp'; did you mean 'pgd'? 2822 | return (unlikely(pgd_none(pgdp_get(pgd))) && __p4d_alloc(mm, pgd, address)) ? | ^ arch/arm/include/asm/pgtable.h:154:36: note: expanded from macro 'pgdp_get' 154 | #define pgdp_get(pgpd) READ_ONCE(*pgdp) | ^ include/linux/mm.h:2819:61: note: 'pgd' declared here 2819 | static inline p4d_t *p4d_alloc(struct mm_struct *mm, pgd_t *pgd, | ^ >> include/linux/mm.h:2822:28: error: use of undeclared identifier 'pgdp'; did you mean 'pgd'? 2822 | return (unlikely(pgd_none(pgdp_get(pgd))) && __p4d_alloc(mm, pgd, address)) ? | ^ arch/arm/include/asm/pgtable.h:154:36: note: expanded from macro 'pgdp_get' 154 | #define pgdp_get(pgpd) READ_ONCE(*pgdp) | ^ include/linux/mm.h:2819:61: note: 'pgd' declared here 2819 | static inline p4d_t *p4d_alloc(struct mm_struct *mm, pgd_t *pgd, | ^ >> include/linux/mm.h:2822:28: error: use of undeclared identifier 'pgdp'; did you mean 'pgd'? 2822 | return (unlikely(pgd_none(pgdp_get(pgd))) && __p4d_alloc(mm, pgd, address)) ? | ^ arch/arm/include/asm/pgtable.h:154:36: note: expanded from macro 'pgdp_get' 154 | #define pgdp_get(pgpd) READ_ONCE(*pgdp) | ^ include/linux/mm.h:2819:61: note: 'pgd' declared here 2819 | static inline p4d_t *p4d_alloc(struct mm_struct *mm, pgd_t *pgd, | ^ >> include/linux/mm.h:2822:28: error: use of undeclared identifier 'pgdp'; did you mean 'pgd'? 2822 | return (unlikely(pgd_none(pgdp_get(pgd))) && __p4d_alloc(mm, pgd, address)) ? | ^ arch/arm/include/asm/pgtable.h:154:36: note: expanded from macro 'pgdp_get' 154 | #define pgdp_get(pgpd) READ_ONCE(*pgdp) | ^ include/linux/mm.h:2819:61: note: 'pgd' declared here 2819 | static inline p4d_t *p4d_alloc(struct mm_struct *mm, pgd_t *pgd, | ^ >> include/linux/mm.h:2822:28: error: use of undeclared identifier 'pgdp'; did you mean 'pgd'? 2822 | return (unlikely(pgd_none(pgdp_get(pgd))) && __p4d_alloc(mm, pgd, address)) ? | ^ arch/arm/include/asm/pgtable.h:154:36: note: expanded from macro 'pgdp_get' 154 | #define pgdp_get(pgpd) READ_ONCE(*pgdp) | ^ include/linux/mm.h:2819:61: note: 'pgd' declared here 2819 | static inline p4d_t *p4d_alloc(struct mm_struct *mm, pgd_t *pgd, | ^ >> include/linux/mm.h:2822:28: error: use of undeclared identifier 'pgdp'; did you mean 'pgd'? 2822 | return (unlikely(pgd_none(pgdp_get(pgd))) && __p4d_alloc(mm, pgd, address)) ? | ^ arch/arm/include/asm/pgtable.h:154:36: note: expanded from macro 'pgdp_get' 154 | #define pgdp_get(pgpd) READ_ONCE(*pgdp) | ^ include/linux/mm.h:2819:61: note: 'pgd' declared here 2819 | static inline p4d_t *p4d_alloc(struct mm_struct *mm, pgd_t *pgd, | ^ >> include/linux/mm.h:2822:28: error: passing 'const volatile pmdval_t *' (aka 'const volatile unsigned int *') to parameter of type 'pmdval_t *' (aka 'unsigned int *') discards qualifiers [-Werror,-Wincompatible-pointer-types-discards-qualifiers] 2822 | return (unlikely(pgd_none(pgdp_get(pgd))) && __p4d_alloc(mm, pgd, address)) ? | ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~ arch/arm/include/asm/pgtable.h:154:25: note: expanded from macro 'pgdp_get' 154 | #define pgdp_get(pgpd) READ_ONCE(*pgdp) | ^ include/asm-generic/rwonce.h:47:28: note: expanded from macro 'READ_ONCE' 47 | #define READ_ONCE(x) \ | ^ include/linux/compiler.h:77:42: note: expanded from macro 'unlikely' 77 | # define unlikely(x) __builtin_expect(!!(x), 0) | ^ include/asm-generic/pgtable-nop4d.h:21:34: note: passing argument to parameter 'pgd' here 21 | static inline int pgd_none(pgd_t pgd) { return 0; } | ^ 29 warnings and 18 errors generated. make[3]: *** [scripts/Makefile.build:117: arch/arm/kernel/asm-offsets.s] Error 1 make[3]: Target 'prepare' not remade because of errors. make[2]: *** [Makefile:1194: prepare0] Error 2 make[2]: Target 'prepare' not remade because of errors. make[1]: *** [Makefile:224: __sub-make] Error 2 make[1]: Target 'prepare' not remade because of errors. make: *** [Makefile:224: __sub-make] Error 2 make: Target 'prepare' not remade because of errors. vim +1245 include/linux/pgtable.h 1242 1243 static inline int pgd_none_or_clear_bad(pgd_t *pgd) 1244 { > 1245 pgd_t old_pgd = pgdp_get(pgd); 1246 1247 if (pgd_none(old_pgd)) 1248 return 1; 1249 if (unlikely(pgd_bad(old_pgd))) { 1250 pgd_clear_bad(pgd); 1251 return 1; 1252 } 1253 return 0; 1254 } 1255 -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki