[PATCH v3 06/22] mm: Always use page table accessor functions
kernel test robot
lkp at intel.com
Wed Nov 12 20:53:18 PST 2025
Hi Samuel,
kernel test robot noticed the following build errors:
[auto build test ERROR on 24172e0d79900908cf5ebf366600616d29c9b417]
url: https://github.com/intel-lab-lkp/linux/commits/Samuel-Holland/mm-ptdump-replace-READ_ONCE-with-standard-page-table-accessors/20251113-095117
base: 24172e0d79900908cf5ebf366600616d29c9b417
patch link: https://lore.kernel.org/r/20251113014656.2605447-7-samuel.holland%40sifive.com
patch subject: [PATCH v3 06/22] mm: Always use page table accessor functions
config: x86_64-allnoconfig (https://download.01.org/0day-ci/archive/20251113/202511131136.6CBuWpof-lkp@intel.com/config)
compiler: clang version 20.1.8 (https://github.com/llvm/llvm-project 87f0227cb60147a26a1eeb4fb06e3b505e9c7261)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20251113/202511131136.6CBuWpof-lkp@intel.com/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 at intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202511131136.6CBuWpof-lkp@intel.com/
All errors (new ones prefixed by >>):
>> mm/pgtable-generic.c:27:2: error: cannot take the address of an rvalue of type 'pgd_t'
27 | pgd_ERROR(pgdp_get(pgd));
| ^ ~~~~~~~~~~~~~
arch/x86/include/asm/pgtable_64.h:50:29: note: expanded from macro 'pgd_ERROR'
50 | __FILE__, __LINE__, &(e), pgd_val(e))
| ^ ~
include/linux/printk.h:555:33: note: expanded from macro 'pr_err'
555 | printk(KERN_ERR pr_fmt(fmt), ##__VA_ARGS__)
| ^~~~~~~~~~~
include/linux/printk.h:512:60: note: expanded from macro 'printk'
512 | #define printk(fmt, ...) printk_index_wrap(_printk, fmt, ##__VA_ARGS__)
| ^~~~~~~~~~~
include/linux/printk.h:484:19: note: expanded from macro 'printk_index_wrap'
484 | _p_func(_fmt, ##__VA_ARGS__); \
| ^~~~~~~~~~~
>> mm/pgtable-generic.c:34:2: error: cannot take the address of an rvalue of type 'p4d_t'
34 | p4d_ERROR(p4dp_get(p4d));
| ^ ~~~~~~~~~~~~~
arch/x86/include/asm/pgtable_64.h:46:29: note: expanded from macro 'p4d_ERROR'
46 | __FILE__, __LINE__, &(e), p4d_val(e))
| ^ ~
include/linux/printk.h:555:33: note: expanded from macro 'pr_err'
555 | printk(KERN_ERR pr_fmt(fmt), ##__VA_ARGS__)
| ^~~~~~~~~~~
include/linux/printk.h:512:60: note: expanded from macro 'printk'
512 | #define printk(fmt, ...) printk_index_wrap(_printk, fmt, ##__VA_ARGS__)
| ^~~~~~~~~~~
include/linux/printk.h:484:19: note: expanded from macro 'printk_index_wrap'
484 | _p_func(_fmt, ##__VA_ARGS__); \
| ^~~~~~~~~~~
>> mm/pgtable-generic.c:42:2: error: cannot take the address of an rvalue of type 'pud_t'
42 | pud_ERROR(pudp_get(pud));
| ^ ~~~~~~~~~~~~~
arch/x86/include/asm/pgtable_64.h:42:29: note: expanded from macro 'pud_ERROR'
42 | __FILE__, __LINE__, &(e), pud_val(e))
| ^ ~
include/linux/printk.h:555:33: note: expanded from macro 'pr_err'
555 | printk(KERN_ERR pr_fmt(fmt), ##__VA_ARGS__)
| ^~~~~~~~~~~
include/linux/printk.h:512:60: note: expanded from macro 'printk'
512 | #define printk(fmt, ...) printk_index_wrap(_printk, fmt, ##__VA_ARGS__)
| ^~~~~~~~~~~
include/linux/printk.h:484:19: note: expanded from macro 'printk_index_wrap'
484 | _p_func(_fmt, ##__VA_ARGS__); \
| ^~~~~~~~~~~
>> mm/pgtable-generic.c:54:2: error: cannot take the address of an rvalue of type 'pmd_t'
54 | pmd_ERROR(pmdp_get(pmd));
| ^ ~~~~~~~~~~~~~
arch/x86/include/asm/pgtable_64.h:39:29: note: expanded from macro 'pmd_ERROR'
39 | __FILE__, __LINE__, &(e), pmd_val(e))
| ^ ~
include/linux/printk.h:555:33: note: expanded from macro 'pr_err'
555 | printk(KERN_ERR pr_fmt(fmt), ##__VA_ARGS__)
| ^~~~~~~~~~~
include/linux/printk.h:512:60: note: expanded from macro 'printk'
512 | #define printk(fmt, ...) printk_index_wrap(_printk, fmt, ##__VA_ARGS__)
| ^~~~~~~~~~~
include/linux/printk.h:484:19: note: expanded from macro 'printk_index_wrap'
484 | _p_func(_fmt, ##__VA_ARGS__); \
| ^~~~~~~~~~~
4 errors generated.
vim +/pgd_t +27 mm/pgtable-generic.c
18
19 /*
20 * If a p?d_bad entry is found while walking page tables, report
21 * the error, before resetting entry to p?d_none. Usually (but
22 * very seldom) called out from the p?d_none_or_clear_bad macros.
23 */
24
25 void pgd_clear_bad(pgd_t *pgd)
26 {
> 27 pgd_ERROR(pgdp_get(pgd));
28 pgd_clear(pgd);
29 }
30
31 #ifndef __PAGETABLE_P4D_FOLDED
32 void p4d_clear_bad(p4d_t *p4d)
33 {
> 34 p4d_ERROR(p4dp_get(p4d));
35 p4d_clear(p4d);
36 }
37 #endif
38
39 #ifndef __PAGETABLE_PUD_FOLDED
40 void pud_clear_bad(pud_t *pud)
41 {
> 42 pud_ERROR(pudp_get(pud));
43 pud_clear(pud);
44 }
45 #endif
46
47 /*
48 * Note that the pmd variant below can't be stub'ed out just as for p4d/pud
49 * above. pmd folding is special and typically pmd_* macros refer to upper
50 * level even when folded
51 */
52 void pmd_clear_bad(pmd_t *pmd)
53 {
> 54 pmd_ERROR(pmdp_get(pmd));
55 pmd_clear(pmd);
56 }
57
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
More information about the linux-riscv
mailing list