lkml.org 
[lkml]   [2021]   [Jan]   [24]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH v10 06/12] powerpc: inline huge vmap supported functions
    Date
    This allows unsupported levels to be constant folded away, and so
    p4d_free_pud_page can be removed because it's no longer linked to.

    Cc: linuxppc-dev@lists.ozlabs.org
    Acked-by: Michael Ellerman <mpe@ellerman.id.au>
    Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
    ---
    arch/powerpc/include/asm/vmalloc.h | 19 ++++++++++++++++---
    arch/powerpc/mm/book3s64/radix_pgtable.c | 21 ---------------------
    2 files changed, 16 insertions(+), 24 deletions(-)

    diff --git a/arch/powerpc/include/asm/vmalloc.h b/arch/powerpc/include/asm/vmalloc.h
    index 105abb73f075..3f0c153befb0 100644
    --- a/arch/powerpc/include/asm/vmalloc.h
    +++ b/arch/powerpc/include/asm/vmalloc.h
    @@ -1,12 +1,25 @@
    #ifndef _ASM_POWERPC_VMALLOC_H
    #define _ASM_POWERPC_VMALLOC_H

    +#include <asm/mmu.h>
    #include <asm/page.h>

    #ifdef CONFIG_HAVE_ARCH_HUGE_VMAP
    -bool arch_vmap_p4d_supported(pgprot_t prot);
    -bool arch_vmap_pud_supported(pgprot_t prot);
    -bool arch_vmap_pmd_supported(pgprot_t prot);
    +static inline bool arch_vmap_p4d_supported(pgprot_t prot)
    +{
    + return false;
    +}
    +
    +static inline bool arch_vmap_pud_supported(pgprot_t prot)
    +{
    + /* HPT does not cope with large pages in the vmalloc area */
    + return radix_enabled();
    +}
    +
    +static inline bool arch_vmap_pmd_supported(pgprot_t prot)
    +{
    + return radix_enabled();
    +}
    #endif

    #endif /* _ASM_POWERPC_VMALLOC_H */
    diff --git a/arch/powerpc/mm/book3s64/radix_pgtable.c b/arch/powerpc/mm/book3s64/radix_pgtable.c
    index 743807fc210f..8da62afccee5 100644
    --- a/arch/powerpc/mm/book3s64/radix_pgtable.c
    +++ b/arch/powerpc/mm/book3s64/radix_pgtable.c
    @@ -1082,22 +1082,6 @@ void radix__ptep_modify_prot_commit(struct vm_area_struct *vma,
    set_pte_at(mm, addr, ptep, pte);
    }

    -bool arch_vmap_pud_supported(pgprot_t prot)
    -{
    - /* HPT does not cope with large pages in the vmalloc area */
    - return radix_enabled();
    -}
    -
    -bool arch_vmap_pmd_supported(pgprot_t prot)
    -{
    - return radix_enabled();
    -}
    -
    -int p4d_free_pud_page(p4d_t *p4d, unsigned long addr)
    -{
    - return 0;
    -}
    -
    int pud_set_huge(pud_t *pud, phys_addr_t addr, pgprot_t prot)
    {
    pte_t *ptep = (pte_t *)pud;
    @@ -1181,8 +1165,3 @@ int pmd_free_pte_page(pmd_t *pmd, unsigned long addr)

    return 1;
    }
    -
    -bool arch_vmap_p4d_supported(pgprot_t prot)
    -{
    - return false;
    -}
    --
    2.23.0
    \
     
     \ /
      Last update: 2021-01-24 09:26    [W:2.647 / U:0.016 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site