Re: linux-next: build failure after merge of the akpm tree

From: Arjun Roy
Date: Thu Feb 27 2020 - 00:20:48 EST


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