On Wed, Feb 26, 2020 at 8:11 PM Stephen Rothwell <sfr@xxxxxxxxxxxxxxxx> wrote: > > Hi all, > > After merging the akpm tree, today's linux-next build (sparc defconfig) > failed like this: > > In file included from include/linux/list.h:9:0, > from include/linux/smp.h:12, > from include/linux/kernel_stat.h:5, > from mm/memory.c:42: > mm/memory.c: In function 'insert_pages': > mm/memory.c:1523:41: error: implicit declaration of function 'pte_index'; did you mean 'page_index'? [-Werror=implicit-function-declaration] > remaining_pages_total, PTRS_PER_PTE - pte_index(addr)); > ^ > include/linux/kernel.h:842:40: note: in definition of macro '__typecheck' > (!!(sizeof((typeof(x) *)1 == (typeof(y) *)1))) > ^ > include/linux/kernel.h:866:24: note: in expansion of macro '__safe_cmp' > __builtin_choose_expr(__safe_cmp(x, y), \ > ^~~~~~~~~~ > include/linux/kernel.h:934:27: note: in expansion of macro '__careful_cmp' > #define min_t(type, x, y) __careful_cmp((type)(x), (type)(y), <) > ^~~~~~~~~~~~~ > mm/memory.c:1522:26: note: in expansion of macro 'min_t' > pages_to_write_in_pmd = min_t(unsigned long, > ^~~~~ > > Caused by patch > > "mm/memory.c: add vm_insert_pages()" > > sparc32 does not implement pte_index at all :-( > > I have added the following patch for today. This may not be correct > or enough. > Thank you for the patch. I still do not have much/any knowledge about sparc in Linux, so will have to defer to those who know more. :( -Arjun > From: Stephen Rothwell <sfr@xxxxxxxxxxxxxxxx> > Date: Thu, 27 Feb 2020 14:57:49 +1100 > Subject: [PATCH] arch/sparc: add a definition of pte_index for the 32 bit kernel > > This is now needed for vm_insert_pages() > > Signed-off-by: Stephen Rothwell <sfr@xxxxxxxxxxxxxxxx> > --- > arch/sparc/include/asm/pgtable_32.h | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/arch/sparc/include/asm/pgtable_32.h b/arch/sparc/include/asm/pgtable_32.h > index 6d6f44c0cad9..dc7a4d69cb18 100644 > --- a/arch/sparc/include/asm/pgtable_32.h > +++ b/arch/sparc/include/asm/pgtable_32.h > @@ -326,6 +326,8 @@ static inline pmd_t *pmd_offset(pud_t * dir, unsigned long address) > } > > /* Find an entry in the third-level page table.. */ > +#define pte_index(address) \ > + ((address >> PAGE_SHIFT) & (PTRS_PER_PTE - 1)) > pte_t *pte_offset_kernel(pmd_t * dir, unsigned long address); > > /* > -- > 2.25.0 > > -- > Cheers, > Stephen Rothwell