tree: https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master head: cd557f1c605fc5a2c0eb0b540610f50dc67dd849 commit: fc3883f43885e02525a495377573ed948f73755a [2999/3150] mm/pgtable: add stubs for {pmd/pub}_{set/clear}_huge config: arm64-randconfig-r031-20210514 (attached as .config) compiler: aarch64-linux-gcc (GCC) 9.3.0 reproduce (this is a W=1 build): wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/?id=fc3883f43885e02525a495377573ed948f73755a git remote add linux-next https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git git fetch --no-tags linux-next master git checkout fc3883f43885e02525a495377573ed948f73755a # save the attached .config to linux build tree COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross W=1 ARCH=arm64 If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot All errors (new ones prefixed by >>): >> arch/arm64/mm/mmu.c:1340:5: error: redefinition of 'pud_set_huge' 1340 | int pud_set_huge(pud_t *pudp, phys_addr_t phys, pgprot_t prot) | ^~~~~~~~~~~~ In file included from include/linux/mm.h:33, from include/linux/pid_namespace.h:7, from include/linux/ptrace.h:10, from include/linux/elfcore.h:11, from include/linux/crash_core.h:6, from include/linux/kexec.h:18, from arch/arm64/mm/mmu.c:15: include/linux/pgtable.h:1378:19: note: previous definition of 'pud_set_huge' was here 1378 | static inline int pud_set_huge(pud_t *pud, phys_addr_t addr, pgprot_t prot) | ^~~~~~~~~~~~ >> arch/arm64/mm/mmu.c:1368:5: error: redefinition of 'pud_clear_huge' 1368 | int pud_clear_huge(pud_t *pudp) | ^~~~~~~~~~~~~~ In file included from include/linux/mm.h:33, from include/linux/pid_namespace.h:7, from include/linux/ptrace.h:10, from include/linux/elfcore.h:11, from include/linux/crash_core.h:6, from include/linux/kexec.h:18, from arch/arm64/mm/mmu.c:15: include/linux/pgtable.h:1382:19: note: previous definition of 'pud_clear_huge' was here 1382 | static inline int pud_clear_huge(pud_t *pud) | ^~~~~~~~~~~~~~ vim +/pud_set_huge +1340 arch/arm64/mm/mmu.c 61bd93ce801bb6 Ard Biesheuvel 2015-06-01 1339 20a004e7b017cc Will Deacon 2018-02-15 @1340 int pud_set_huge(pud_t *pudp, phys_addr_t phys, pgprot_t prot) 324420bf91f605 Ard Biesheuvel 2016-02-16 1341 { f7f0097af67c3c Anshuman Khandual 2019-05-27 1342 pud_t new_pud = pfn_pud(__phys_to_pfn(phys), mk_pud_sect_prot(prot)); 15122ee2c515a2 Will Deacon 2018-02-21 1343 82034c23fcbc23 Laura Abbott 2018-05-23 1344 /* Only allow permission changes for now */ 82034c23fcbc23 Laura Abbott 2018-05-23 1345 if (!pgattr_change_is_safe(READ_ONCE(pud_val(*pudp)), 82034c23fcbc23 Laura Abbott 2018-05-23 1346 pud_val(new_pud))) 15122ee2c515a2 Will Deacon 2018-02-21 1347 return 0; 15122ee2c515a2 Will Deacon 2018-02-21 1348 87dedf7c61ab07 Anshuman Khandual 2019-05-27 1349 VM_BUG_ON(phys & ~PUD_MASK); 82034c23fcbc23 Laura Abbott 2018-05-23 1350 set_pud(pudp, new_pud); 324420bf91f605 Ard Biesheuvel 2016-02-16 1351 return 1; 324420bf91f605 Ard Biesheuvel 2016-02-16 1352 } 324420bf91f605 Ard Biesheuvel 2016-02-16 1353 20a004e7b017cc Will Deacon 2018-02-15 1354 int pmd_set_huge(pmd_t *pmdp, phys_addr_t phys, pgprot_t prot) 324420bf91f605 Ard Biesheuvel 2016-02-16 1355 { f7f0097af67c3c Anshuman Khandual 2019-05-27 1356 pmd_t new_pmd = pfn_pmd(__phys_to_pfn(phys), mk_pmd_sect_prot(prot)); 15122ee2c515a2 Will Deacon 2018-02-21 1357 82034c23fcbc23 Laura Abbott 2018-05-23 1358 /* Only allow permission changes for now */ 82034c23fcbc23 Laura Abbott 2018-05-23 1359 if (!pgattr_change_is_safe(READ_ONCE(pmd_val(*pmdp)), 82034c23fcbc23 Laura Abbott 2018-05-23 1360 pmd_val(new_pmd))) 15122ee2c515a2 Will Deacon 2018-02-21 1361 return 0; 15122ee2c515a2 Will Deacon 2018-02-21 1362 87dedf7c61ab07 Anshuman Khandual 2019-05-27 1363 VM_BUG_ON(phys & ~PMD_MASK); 82034c23fcbc23 Laura Abbott 2018-05-23 1364 set_pmd(pmdp, new_pmd); 324420bf91f605 Ard Biesheuvel 2016-02-16 1365 return 1; 324420bf91f605 Ard Biesheuvel 2016-02-16 1366 } 324420bf91f605 Ard Biesheuvel 2016-02-16 1367 20a004e7b017cc Will Deacon 2018-02-15 @1368 int pud_clear_huge(pud_t *pudp) 324420bf91f605 Ard Biesheuvel 2016-02-16 1369 { 20a004e7b017cc Will Deacon 2018-02-15 1370 if (!pud_sect(READ_ONCE(*pudp))) 324420bf91f605 Ard Biesheuvel 2016-02-16 1371 return 0; 20a004e7b017cc Will Deacon 2018-02-15 1372 pud_clear(pudp); 324420bf91f605 Ard Biesheuvel 2016-02-16 1373 return 1; 324420bf91f605 Ard Biesheuvel 2016-02-16 1374 } 324420bf91f605 Ard Biesheuvel 2016-02-16 1375 :::::: The code at line 1340 was first introduced by commit :::::: 20a004e7b017cce282a46ac5d02c2b9c6b9bb1fa arm64: mm: Use READ_ONCE/WRITE_ONCE when accessing page tables :::::: TO: Will Deacon :::::: CC: Catalin Marinas --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org