Re: [PATCH v5 26/33] nios2: Convert __pte_free_tlb() to use ptdescs

Guenter Roeck
2023-06-27T05:47:57Z

On Thu, Jun 22, 2023 at 01:57:38PM -0700, Vishal Moola (Oracle) wrote:
> Part of the conversions to replace pgtable constructor/destructors with
> ptdesc equivalents.
>
> Signed-off-by: Vishal Moola (Oracle) <vishal.moola@gmail.com>
> Acked-by: Mike Rapoport (IBM) <rppt@kernel.org>

This patch causes all nios2 builds to fail.

Building nios2:allnoconfig ... failed
--------------
Error log:
<stdin>:1519:2: warning: #warning syscall clone3 not implemented [-Wcpp]
In file included from mm/memory.c:85:
mm/memory.c: In function 'free_pte_range':
arch/nios2/include/asm/pgalloc.h:33:17: error: implicit declaration of function 'pagetable_pte_dtor'; did you mean 'pgtable_pte_page_dtor'? [-Werror=implicit-function-declaration]
33 | pagetable_pte_dtor(page_ptdesc(pte)); \
| ^~~~~~~~~~~~~~~~~~
include/asm-generic/tlb.h:666:17: note: in expansion of macro '__pte_free_tlb'
666 | __pte_free_tlb(tlb, ptep, address); \
| ^~~~~~~~~~~~~~
mm/memory.c:193:9: note: in expansion of macro 'pte_free_tlb'
193 | pte_free_tlb(tlb, token, addr);
| ^~~~~~~~~~~~
arch/nios2/include/asm/pgalloc.h:33:36: error: implicit declaration of function 'page_ptdesc' [-Werror=implicit-function-declaration]
33 | pagetable_pte_dtor(page_ptdesc(pte)); \
| ^~~~~~~~~~~
include/asm-generic/tlb.h:666:17: note: in expansion of macro '__pte_free_tlb'
666 | __pte_free_tlb(tlb, ptep, address); \
| ^~~~~~~~~~~~~~
mm/memory.c:193:9: note: in expansion of macro 'pte_free_tlb'
193 | pte_free_tlb(tlb, token, addr);
| ^~~~~~~~~~~~
arch/nios2/include/asm/pgalloc.h:34:17: error: implicit declaration of function 'tlb_remove_page_ptdesc'; did you mean 'tlb_remove_page_size'? [-Werror=implicit-function-declaration]
34 | tlb_remove_page_ptdesc((tlb), (page_ptdesc(pte))); \
| ^~~~~~~~~~~~~~~~~~~~~~
include/asm-generic/tlb.h:666:17: note: in expansion of macro '__pte_free_tlb'
666 | __pte_free_tlb(tlb, ptep, address); \
| ^~~~~~~~~~~~~~
mm/memory.c:193:9: note: in expansion of macro 'pte_free_tlb'
193 | pte_free_tlb(tlb, token, addr);

> ---
> arch/nios2/include/asm/pgalloc.h | 8 ++++----
> 1 file changed, 4 insertions(+), 4 deletions(-)
>
> diff --git a/arch/nios2/include/asm/pgalloc.h b/arch/nios2/include/asm/pgalloc.h
> index ecd1657bb2ce..ce6bb8e74271 100644
> --- a/arch/nios2/include/asm/pgalloc.h
> +++ b/arch/nios2/include/asm/pgalloc.h
> @@ -28,10 +28,10 @@ static inline void pmd_populate(struct mm_struct *mm, pmd_t *pmd,
>
> extern pgd_t *pgd_alloc(struct mm_struct *mm);
>
> -#define __pte_free_tlb(tlb, pte, addr) \
> - do { \
> - pgtable_pte_page_dtor(pte); \
> - tlb_remove_page((tlb), (pte)); \
> +#define __pte_free_tlb(tlb, pte, addr) \
> + do { \
> + pagetable_pte_dtor(page_ptdesc(pte)); \
> + tlb_remove_page_ptdesc((tlb), (page_ptdesc(pte))); \
> } while (0)
>
> #endif /* _ASM_NIOS2_PGALLOC_H */
> --
> 2.40.1
>
>