tree: https://github.com/intel/linux-intel-lts.git 5.10/yocto head: f25f082bbe466a03d78d82f2b8cf73b3a3b5ae97 commit: d3dd1f7da1042760f5dbc32a638ff53cf2d9b1da [15943/17453] highmem: High implementation details and document API config: arm-defconfig (attached as .config) compiler: arm-linux-gnueabi-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://github.com/intel/linux-intel-lts/commit/d3dd1f7da1042760f5dbc32a638ff53cf2d9b1da git remote add intel-lts https://github.com/intel/linux-intel-lts.git git fetch --no-tags intel-lts 5.10/yocto git checkout d3dd1f7da1042760f5dbc32a638ff53cf2d9b1da # save the attached .config to linux build tree mkdir build_dir COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross O=build_dir ARCH=arm SHELL=/bin/bash arch/arm/ If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot All errors (new ones prefixed by >>): In file included from include/linux/highmem.h:14, from include/crypto/scatterwalk.h:15, from arch/arm/crypto/aes-neonbs-glue.c:14: include/linux/highmem-internal.h: In function 'kmap_atomic_prot': include/linux/highmem-internal.h:65:16: error: implicit declaration of function '__kmap_local_page_prot' [-Werror=implicit-function-declaration] 65 | return __kmap_local_page_prot(page, prot); | ^~~~~~~~~~~~~~~~~~~~~~ include/linux/highmem-internal.h:65:16: warning: returning 'int' from a function with return type 'void *' makes pointer from integer without a cast [-Wint-conversion] 65 | return __kmap_local_page_prot(page, prot); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/highmem-internal.h: At top level: >> include/linux/highmem-internal.h:73:21: error: static declaration of 'kmap_atomic_pfn' follows non-static declaration 73 | static inline void *kmap_atomic_pfn(unsigned long pfn) | ^~~~~~~~~~~~~~~ In file included from include/linux/highmem-internal.h:15, from include/linux/highmem.h:14, from include/crypto/scatterwalk.h:15, from arch/arm/crypto/aes-neonbs-glue.c:14: arch/arm/include/asm/highmem.h:61:14: note: previous declaration of 'kmap_atomic_pfn' with type 'void *(long unsigned int)' 61 | extern void *kmap_atomic_pfn(unsigned long pfn); | ^~~~~~~~~~~~~~~ In file included from include/linux/highmem.h:14, from include/crypto/scatterwalk.h:15, from arch/arm/crypto/aes-neonbs-glue.c:14: include/linux/highmem-internal.h: In function 'kmap_atomic_pfn': include/linux/highmem-internal.h:77:16: error: implicit declaration of function '__kmap_local_pfn_prot' [-Werror=implicit-function-declaration] 77 | return __kmap_local_pfn_prot(pfn, kmap_prot); | ^~~~~~~~~~~~~~~~~~~~~ include/linux/highmem-internal.h:77:16: warning: returning 'int' from a function with return type 'void *' makes pointer from integer without a cast [-Wint-conversion] 77 | return __kmap_local_pfn_prot(pfn, kmap_prot); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/highmem-internal.h: In function '__kunmap_atomic': include/linux/highmem-internal.h:82:9: error: implicit declaration of function 'kunmap_local_indexed' [-Werror=implicit-function-declaration] 82 | kunmap_local_indexed(addr); | ^~~~~~~~~~~~~~~~~~~~ cc1: some warnings being treated as errors -- In file included from include/linux/highmem.h:14, from arch/arm/mm/highmem.c:11: include/linux/highmem-internal.h: In function 'kmap_atomic_prot': include/linux/highmem-internal.h:65:16: error: implicit declaration of function '__kmap_local_page_prot' [-Werror=implicit-function-declaration] 65 | return __kmap_local_page_prot(page, prot); | ^~~~~~~~~~~~~~~~~~~~~~ include/linux/highmem-internal.h:65:16: warning: returning 'int' from a function with return type 'void *' makes pointer from integer without a cast [-Wint-conversion] 65 | return __kmap_local_page_prot(page, prot); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/highmem-internal.h: At top level: >> include/linux/highmem-internal.h:73:21: error: static declaration of 'kmap_atomic_pfn' follows non-static declaration 73 | static inline void *kmap_atomic_pfn(unsigned long pfn) | ^~~~~~~~~~~~~~~ In file included from include/linux/highmem-internal.h:15, from include/linux/highmem.h:14, from arch/arm/mm/highmem.c:11: arch/arm/include/asm/highmem.h:61:14: note: previous declaration of 'kmap_atomic_pfn' with type 'void *(long unsigned int)' 61 | extern void *kmap_atomic_pfn(unsigned long pfn); | ^~~~~~~~~~~~~~~ In file included from include/linux/highmem.h:14, from arch/arm/mm/highmem.c:11: include/linux/highmem-internal.h: In function 'kmap_atomic_pfn': include/linux/highmem-internal.h:77:16: error: implicit declaration of function '__kmap_local_pfn_prot' [-Werror=implicit-function-declaration] 77 | return __kmap_local_pfn_prot(pfn, kmap_prot); | ^~~~~~~~~~~~~~~~~~~~~ include/linux/highmem-internal.h:77:16: warning: returning 'int' from a function with return type 'void *' makes pointer from integer without a cast [-Wint-conversion] 77 | return __kmap_local_pfn_prot(pfn, kmap_prot); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/highmem-internal.h: In function '__kunmap_atomic': include/linux/highmem-internal.h:82:9: error: implicit declaration of function 'kunmap_local_indexed' [-Werror=implicit-function-declaration] 82 | kunmap_local_indexed(addr); | ^~~~~~~~~~~~~~~~~~~~ arch/arm/mm/highmem.c: At top level: arch/arm/mm/highmem.c:34:7: warning: no previous prototype for 'kmap_atomic_high_prot' [-Wmissing-prototypes] 34 | void *kmap_atomic_high_prot(struct page *page, pgprot_t prot) | ^~~~~~~~~~~~~~~~~~~~~ arch/arm/mm/highmem.c: In function 'kmap_atomic_high_prot': arch/arm/mm/highmem.c:54:16: error: implicit declaration of function 'kmap_atomic_idx_push'; did you mean 'kmap_atomic_high_prot'? [-Werror=implicit-function-declaration] 54 | type = kmap_atomic_idx_push(); | ^~~~~~~~~~~~~~~~~~~~ | kmap_atomic_high_prot arch/arm/mm/highmem.c: At top level: arch/arm/mm/highmem.c:76:6: warning: no previous prototype for 'kunmap_atomic_high' [-Wmissing-prototypes] 76 | void kunmap_atomic_high(void *kvaddr) | ^~~~~~~~~~~~~~~~~~ arch/arm/mm/highmem.c: In function 'kunmap_atomic_high': arch/arm/mm/highmem.c:82:24: error: implicit declaration of function 'kmap_atomic_idx'; did you mean 'kmap_atomic_pfn'? [-Werror=implicit-function-declaration] 82 | type = kmap_atomic_idx(); | ^~~~~~~~~~~~~~~ | kmap_atomic_pfn arch/arm/mm/highmem.c:93:17: error: implicit declaration of function 'kmap_atomic_idx_pop'; did you mean 'kmap_atomic_high_prot'? [-Werror=implicit-function-declaration] 93 | kmap_atomic_idx_pop(); | ^~~~~~~~~~~~~~~~~~~ | kmap_atomic_high_prot arch/arm/mm/highmem.c: At top level: arch/arm/mm/highmem.c:101:7: error: redefinition of 'kmap_atomic_pfn' 101 | void *kmap_atomic_pfn(unsigned long pfn) | ^~~~~~~~~~~~~~~ In file included from include/linux/highmem.h:14, from arch/arm/mm/highmem.c:11: include/linux/highmem-internal.h:73:21: note: previous definition of 'kmap_atomic_pfn' with type 'void *(long unsigned int)' 73 | static inline void *kmap_atomic_pfn(unsigned long pfn) | ^~~~~~~~~~~~~~~ cc1: some warnings being treated as errors -- In file included from include/linux/highmem.h:14, from include/linux/pagemap.h:11, from arch/arm/mm/flush.c:9: include/linux/highmem-internal.h: In function 'kmap_atomic_prot': include/linux/highmem-internal.h:65:16: error: implicit declaration of function '__kmap_local_page_prot' [-Werror=implicit-function-declaration] 65 | return __kmap_local_page_prot(page, prot); | ^~~~~~~~~~~~~~~~~~~~~~ include/linux/highmem-internal.h:65:16: warning: returning 'int' from a function with return type 'void *' makes pointer from integer without a cast [-Wint-conversion] 65 | return __kmap_local_page_prot(page, prot); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/highmem-internal.h: At top level: >> include/linux/highmem-internal.h:73:21: error: static declaration of 'kmap_atomic_pfn' follows non-static declaration 73 | static inline void *kmap_atomic_pfn(unsigned long pfn) | ^~~~~~~~~~~~~~~ In file included from include/linux/highmem-internal.h:15, from include/linux/highmem.h:14, from include/linux/pagemap.h:11, from arch/arm/mm/flush.c:9: arch/arm/include/asm/highmem.h:61:14: note: previous declaration of 'kmap_atomic_pfn' with type 'void *(long unsigned int)' 61 | extern void *kmap_atomic_pfn(unsigned long pfn); | ^~~~~~~~~~~~~~~ In file included from include/linux/highmem.h:14, from include/linux/pagemap.h:11, from arch/arm/mm/flush.c:9: include/linux/highmem-internal.h: In function 'kmap_atomic_pfn': include/linux/highmem-internal.h:77:16: error: implicit declaration of function '__kmap_local_pfn_prot' [-Werror=implicit-function-declaration] 77 | return __kmap_local_pfn_prot(pfn, kmap_prot); | ^~~~~~~~~~~~~~~~~~~~~ include/linux/highmem-internal.h:77:16: warning: returning 'int' from a function with return type 'void *' makes pointer from integer without a cast [-Wint-conversion] 77 | return __kmap_local_pfn_prot(pfn, kmap_prot); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/highmem-internal.h: In function '__kunmap_atomic': include/linux/highmem-internal.h:82:9: error: implicit declaration of function 'kunmap_local_indexed' [-Werror=implicit-function-declaration] 82 | kunmap_local_indexed(addr); | ^~~~~~~~~~~~~~~~~~~~ arch/arm/mm/flush.c: At top level: arch/arm/mm/flush.c:390:6: warning: no previous prototype for '__flush_anon_page' [-Wmissing-prototypes] 390 | void __flush_anon_page(struct vm_area_struct *vma, struct page *page, unsigned long vmaddr) | ^~~~~~~~~~~~~~~~~ cc1: some warnings being treated as errors -- In file included from include/linux/highmem.h:14, from arch/arm/mm/fault.c:18: include/linux/highmem-internal.h: In function 'kmap_atomic_prot': include/linux/highmem-internal.h:65:16: error: implicit declaration of function '__kmap_local_page_prot' [-Werror=implicit-function-declaration] 65 | return __kmap_local_page_prot(page, prot); | ^~~~~~~~~~~~~~~~~~~~~~ include/linux/highmem-internal.h:65:16: warning: returning 'int' from a function with return type 'void *' makes pointer from integer without a cast [-Wint-conversion] 65 | return __kmap_local_page_prot(page, prot); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/highmem-internal.h: At top level: >> include/linux/highmem-internal.h:73:21: error: static declaration of 'kmap_atomic_pfn' follows non-static declaration 73 | static inline void *kmap_atomic_pfn(unsigned long pfn) | ^~~~~~~~~~~~~~~ In file included from include/linux/highmem-internal.h:15, from include/linux/highmem.h:14, from arch/arm/mm/fault.c:18: arch/arm/include/asm/highmem.h:61:14: note: previous declaration of 'kmap_atomic_pfn' with type 'void *(long unsigned int)' 61 | extern void *kmap_atomic_pfn(unsigned long pfn); | ^~~~~~~~~~~~~~~ In file included from include/linux/highmem.h:14, from arch/arm/mm/fault.c:18: include/linux/highmem-internal.h: In function 'kmap_atomic_pfn': include/linux/highmem-internal.h:77:16: error: implicit declaration of function '__kmap_local_pfn_prot' [-Werror=implicit-function-declaration] 77 | return __kmap_local_pfn_prot(pfn, kmap_prot); | ^~~~~~~~~~~~~~~~~~~~~ include/linux/highmem-internal.h:77:16: warning: returning 'int' from a function with return type 'void *' makes pointer from integer without a cast [-Wint-conversion] 77 | return __kmap_local_pfn_prot(pfn, kmap_prot); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/highmem-internal.h: In function '__kunmap_atomic': include/linux/highmem-internal.h:82:9: error: implicit declaration of function 'kunmap_local_indexed' [-Werror=implicit-function-declaration] 82 | kunmap_local_indexed(addr); | ^~~~~~~~~~~~~~~~~~~~ arch/arm/mm/fault.c: At top level: arch/arm/mm/fault.c:518:1: warning: no previous prototype for 'do_DataAbort' [-Wmissing-prototypes] 518 | do_DataAbort(unsigned long addr, unsigned int fsr, struct pt_regs *regs) | ^~~~~~~~~~~~ arch/arm/mm/fault.c:548:1: warning: no previous prototype for 'do_PrefetchAbort' [-Wmissing-prototypes] 548 | do_PrefetchAbort(unsigned long addr, unsigned int ifsr, struct pt_regs *regs) | ^~~~~~~~~~~~~~~~ cc1: some warnings being treated as errors -- In file included from include/linux/highmem.h:14, from include/linux/pagemap.h:11, from include/linux/blkdev.h:14, from include/linux/blk-cgroup.h:23, from include/linux/writeback.h:14, from include/linux/memcontrol.h:22, from include/linux/swap.h:9, from arch/arm/mm/init.c:9: include/linux/highmem-internal.h: In function 'kmap_atomic_prot': include/linux/highmem-internal.h:65:16: error: implicit declaration of function '__kmap_local_page_prot' [-Werror=implicit-function-declaration] 65 | return __kmap_local_page_prot(page, prot); | ^~~~~~~~~~~~~~~~~~~~~~ include/linux/highmem-internal.h:65:16: warning: returning 'int' from a function with return type 'void *' makes pointer from integer without a cast [-Wint-conversion] 65 | return __kmap_local_page_prot(page, prot); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/highmem-internal.h: At top level: >> include/linux/highmem-internal.h:73:21: error: static declaration of 'kmap_atomic_pfn' follows non-static declaration 73 | static inline void *kmap_atomic_pfn(unsigned long pfn) | ^~~~~~~~~~~~~~~ In file included from include/linux/highmem-internal.h:15, from include/linux/highmem.h:14, from include/linux/pagemap.h:11, from include/linux/blkdev.h:14, from include/linux/blk-cgroup.h:23, from include/linux/writeback.h:14, from include/linux/memcontrol.h:22, from include/linux/swap.h:9, from arch/arm/mm/init.c:9: arch/arm/include/asm/highmem.h:61:14: note: previous declaration of 'kmap_atomic_pfn' with type 'void *(long unsigned int)' 61 | extern void *kmap_atomic_pfn(unsigned long pfn); | ^~~~~~~~~~~~~~~ In file included from include/linux/highmem.h:14, from include/linux/pagemap.h:11, from include/linux/blkdev.h:14, from include/linux/blk-cgroup.h:23, from include/linux/writeback.h:14, from include/linux/memcontrol.h:22, from include/linux/swap.h:9, from arch/arm/mm/init.c:9: include/linux/highmem-internal.h: In function 'kmap_atomic_pfn': include/linux/highmem-internal.h:77:16: error: implicit declaration of function '__kmap_local_pfn_prot' [-Werror=implicit-function-declaration] 77 | return __kmap_local_pfn_prot(pfn, kmap_prot); | ^~~~~~~~~~~~~~~~~~~~~ include/linux/highmem-internal.h:77:16: warning: returning 'int' from a function with return type 'void *' makes pointer from integer without a cast [-Wint-conversion] 77 | return __kmap_local_pfn_prot(pfn, kmap_prot); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/highmem-internal.h: In function '__kunmap_atomic': include/linux/highmem-internal.h:82:9: error: implicit declaration of function 'kunmap_local_indexed' [-Werror=implicit-function-declaration] 82 | kunmap_local_indexed(addr); | ^~~~~~~~~~~~~~~~~~~~ arch/arm/mm/init.c: At top level: arch/arm/mm/init.c:97:13: warning: no previous prototype for 'setup_dma_zone' [-Wmissing-prototypes] 97 | void __init setup_dma_zone(const struct machine_desc *mdesc) | ^~~~~~~~~~~~~~ cc1: some warnings being treated as errors -- In file included from include/linux/highmem.h:14, from include/linux/pagemap.h:11, from include/linux/blkdev.h:14, from include/linux/blk-cgroup.h:23, from include/linux/writeback.h:14, from include/linux/memcontrol.h:22, from include/linux/swap.h:9, from arch/arm/include/asm/tlb.h:29, from arch/arm/mm/mmu.c:25: include/linux/highmem-internal.h: In function 'kmap_atomic_prot': include/linux/highmem-internal.h:65:16: error: implicit declaration of function '__kmap_local_page_prot' [-Werror=implicit-function-declaration] 65 | return __kmap_local_page_prot(page, prot); | ^~~~~~~~~~~~~~~~~~~~~~ include/linux/highmem-internal.h:65:16: warning: returning 'int' from a function with return type 'void *' makes pointer from integer without a cast [-Wint-conversion] 65 | return __kmap_local_page_prot(page, prot); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/highmem-internal.h: At top level: >> include/linux/highmem-internal.h:73:21: error: static declaration of 'kmap_atomic_pfn' follows non-static declaration 73 | static inline void *kmap_atomic_pfn(unsigned long pfn) | ^~~~~~~~~~~~~~~ In file included from include/linux/highmem-internal.h:15, from include/linux/highmem.h:14, from include/linux/pagemap.h:11, from include/linux/blkdev.h:14, from include/linux/blk-cgroup.h:23, from include/linux/writeback.h:14, from include/linux/memcontrol.h:22, from include/linux/swap.h:9, from arch/arm/include/asm/tlb.h:29, from arch/arm/mm/mmu.c:25: arch/arm/include/asm/highmem.h:61:14: note: previous declaration of 'kmap_atomic_pfn' with type 'void *(long unsigned int)' 61 | extern void *kmap_atomic_pfn(unsigned long pfn); | ^~~~~~~~~~~~~~~ In file included from include/linux/highmem.h:14, from include/linux/pagemap.h:11, from include/linux/blkdev.h:14, from include/linux/blk-cgroup.h:23, from include/linux/writeback.h:14, from include/linux/memcontrol.h:22, from include/linux/swap.h:9, from arch/arm/include/asm/tlb.h:29, from arch/arm/mm/mmu.c:25: include/linux/highmem-internal.h: In function 'kmap_atomic_pfn': include/linux/highmem-internal.h:77:16: error: implicit declaration of function '__kmap_local_pfn_prot' [-Werror=implicit-function-declaration] 77 | return __kmap_local_pfn_prot(pfn, kmap_prot); | ^~~~~~~~~~~~~~~~~~~~~ include/linux/highmem-internal.h:77:16: warning: returning 'int' from a function with return type 'void *' makes pointer from integer without a cast [-Wint-conversion] 77 | return __kmap_local_pfn_prot(pfn, kmap_prot); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/highmem-internal.h: In function '__kunmap_atomic': include/linux/highmem-internal.h:82:9: error: implicit declaration of function 'kunmap_local_indexed' [-Werror=implicit-function-declaration] 82 | kunmap_local_indexed(addr); | ^~~~~~~~~~~~~~~~~~~~ arch/arm/mm/mmu.c: At top level: arch/arm/mm/mmu.c:118:13: warning: no previous prototype for 'init_default_cache_policy' [-Wmissing-prototypes] 118 | void __init init_default_cache_policy(unsigned long pmd) | ^~~~~~~~~~~~~~~~~~~~~~~~~ arch/arm/mm/mmu.c:1156:13: warning: no previous prototype for 'adjust_lowmem_bounds' [-Wmissing-prototypes] 1156 | void __init adjust_lowmem_bounds(void) | ^~~~~~~~~~~~~~~~~~~~ arch/arm/mm/mmu.c:1628:13: warning: no previous prototype for 'paging_init' [-Wmissing-prototypes] 1628 | void __init paging_init(const struct machine_desc *mdesc) | ^~~~~~~~~~~ arch/arm/mm/mmu.c:1652:13: warning: no previous prototype for 'early_mm_init' [-Wmissing-prototypes] 1652 | void __init early_mm_init(const struct machine_desc *mdesc) | ^~~~~~~~~~~~~ cc1: some warnings being treated as errors .. vim +/kmap_atomic_pfn +73 include/linux/highmem-internal.h 60 61 static inline void *kmap_atomic_prot(struct page *page, pgprot_t prot) 62 { 63 preempt_disable(); 64 pagefault_disable(); > 65 return __kmap_local_page_prot(page, prot); 66 } 67 68 static inline void *kmap_atomic(struct page *page) 69 { 70 return kmap_atomic_prot(page, kmap_prot); 71 } 72 > 73 static inline void *kmap_atomic_pfn(unsigned long pfn) 74 { 75 preempt_disable(); 76 pagefault_disable(); 77 return __kmap_local_pfn_prot(pfn, kmap_prot); 78 } 79 --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org