tree: https://git.kernel.org/pub/scm/linux/kernel/git/mark/linux.git arm64/pgtable/cleanup head: 198e77ecb00474ffeb2d37614580d6936efa0dbc commit: 5570396155aab65aeb4f58f43067322e1229d0a1 [14/16] arm64: mm: always map fixmap at page granularity config: arm64-allyesconfig (attached as .config) compiler: aarch64-linux-gcc (GCC) 11.2.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/mark/linux.git/commit/?id=5570396155aab65aeb4f58f43067322e1229d0a1 git remote add mark-rutland https://git.kernel.org/pub/scm/linux/kernel/git/mark/linux.git git fetch --no-tags mark-rutland arm64/pgtable/cleanup git checkout 5570396155aab65aeb4f58f43067322e1229d0a1 # save the attached .config to linux build tree COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross ARCH=arm64 If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot All warnings (new ones prefixed by >>): >> arch/arm64/mm/fixmap.c:49:13: warning: no previous prototype for 'early_fixmap_init_pte' [-Wmissing-prototypes] 49 | void __init early_fixmap_init_pte(pmd_t *pmdp, unsigned long addr) | ^~~~~~~~~~~~~~~~~~~~~ >> arch/arm64/mm/fixmap.c:60:13: warning: no previous prototype for 'early_fixmap_init_pmd' [-Wmissing-prototypes] 60 | void __init early_fixmap_init_pmd(pud_t *pudp, unsigned long addr, | ^~~~~~~~~~~~~~~~~~~~~ >> arch/arm64/mm/fixmap.c:77:13: warning: no previous prototype for 'early_fixmap_init_pud' [-Wmissing-prototypes] 77 | void __init early_fixmap_init_pud(p4d_t *p4dp, unsigned long addr, | ^~~~~~~~~~~~~~~~~~~~~ vim +/early_fixmap_init_pte +49 arch/arm64/mm/fixmap.c 48 > 49 void __init early_fixmap_init_pte(pmd_t *pmdp, unsigned long addr) 50 { 51 pmd_t pmd = READ_ONCE(*pmdp); 52 pte_t *ptep; 53 54 if (pmd_none(pmd)) { 55 ptep = bm_pte[BM_PTE_IDX(addr)]; 56 __pmd_populate(pmdp, __pa_symbol(ptep), PMD_TYPE_TABLE); 57 } 58 } 59 > 60 void __init early_fixmap_init_pmd(pud_t *pudp, unsigned long addr, 61 unsigned long end) 62 { 63 unsigned long next; 64 pud_t pud = READ_ONCE(*pudp); 65 pmd_t *pmdp; 66 67 if (pud_none(pud)) 68 __pud_populate(pudp, __pa_symbol(bm_pmd), PUD_TYPE_TABLE); 69 70 pmdp = pmd_offset_kimg(pudp, addr); 71 do { 72 next = pmd_addr_end(addr, end); 73 early_fixmap_init_pte(pmdp, addr); 74 } while (pmdp++, addr = next, addr != end); 75 } 76 > 77 void __init early_fixmap_init_pud(p4d_t *p4dp, unsigned long addr, 78 unsigned long end) 79 { 80 p4d_t p4d = READ_ONCE(*p4dp); 81 pud_t *pudp; 82 83 if (CONFIG_PGTABLE_LEVELS > 3 && !p4d_none(p4d) && 84 p4d_page_paddr(p4d) != __pa_symbol(bm_pud)) { 85 /* 86 * We only end up here if the kernel mapping and the fixmap 87 * share the top level pgd entry, which should only happen on 88 * 16k/4 levels configurations. 89 */ 90 BUG_ON(!IS_ENABLED(CONFIG_ARM64_16K_PAGES)); 91 } 92 93 if (p4d_none(p4d)) 94 __p4d_populate(p4dp, __pa_symbol(bm_pud), P4D_TYPE_TABLE); 95 96 pudp = pud_offset_kimg(p4dp, addr); 97 early_fixmap_init_pmd(pudp, addr, end); 98 } 99 --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org