On Wed, 10 Jun 2020 00:12:12 +0800 kernel test robot <lkp@xxxxxxxxx> wrote: > tree: https://github.com/hnaz/linux-mm master > head: a017b085735719105714da692a82a6eeb8830718 > commit: f48b9eb10f8c3f378ea4552fee58db3dea980e62 [60/194] mm: consolidate pte_index() and pte_offset_*() definitions > config: sparc-defconfig (attached as .config) > compiler: sparc-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 > git checkout f48b9eb10f8c3f378ea4552fee58db3dea980e62 > # save the attached .config to linux build tree > COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=sparc > > If you fix the issue, kindly add following tag as appropriate > Reported-by: kernel test robot <lkp@xxxxxxxxx> > > All error/warnings (new ones prefixed by >>, old ones prefixed by <<): > > In file included from include/linux/mm.h:31, > from include/linux/memblock.h:13, > from arch/sparc/mm/srmmu.c:14: > >> include/linux/pgtable.h:74:27: error: redefinition of 'pte_offset_kernel' > 74 | #define pte_offset_kernel pte_offset_kernel > | ^~~~~~~~~~~~~~~~~ > >> arch/sparc/mm/srmmu.c:144:8: note: in expansion of macro 'pte_offset_kernel' > 144 | pte_t *pte_offset_kernel(pmd_t *dir, unsigned long address) > | ^~~~~~~~~~~~~~~~~ > include/linux/pgtable.h:70:22: note: previous definition of 'pte_offset_kernel' was here > 70 | static inline pte_t *pte_offset_kernel(pmd_t *pmd, unsigned long address) > | ^~~~~~~~~~~~~~~~~ > arch/sparc/mm/srmmu.c: In function 'poke_hypersparc': > arch/sparc/mm/srmmu.c:1093:25: error: variable 'clear' set but not used [-Werror=unused-but-set-variable] > 1093 | volatile unsigned long clear; Well dang. The function was supposed to have been removed but obviously this was lost during all the merging messes. Mike, can you please confirm that this is still good? --- a/arch/sparc/mm/srmmu.c~a +++ a/arch/sparc/mm/srmmu.c @@ -140,16 +140,6 @@ void pmd_set(pmd_t *pmdp, pte_t *ptep) set_pte((pte_t *)&pmd_val(*pmdp), __pte(SRMMU_ET_PTD | ptp)); } -/* Find an entry in the third-level page table.. */ -pte_t *pte_offset_kernel(pmd_t *dir, unsigned long address) -{ - void *pte; - - pte = __nocache_va((pmd_val(*dir) & SRMMU_PTD_PMASK) << 4); - return (pte_t *) pte + - ((address >> PAGE_SHIFT) & (PTRS_PER_PTE - 1)); -} - /* * size: bytes to allocate in the nocache area. * align: bytes, number to align at. _