lkml.org 
[lkml]   [2020]   [Jul]   [28]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    SubjectRe: [PATCH 04/24] arm: use asm-generic/mmu_context.h for no-op implementations
    Date
    On 7/27/20 8:33 PM, Nicholas Piggin wrote:
    > Cc: Russell King <linux@armlinux.org.uk>
    > Cc: linux-arm-kernel@lists.infradead.org
    > Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
    > ---
    > arch/arm/include/asm/mmu_context.h | 26 +++-----------------------
    > 1 file changed, 3 insertions(+), 23 deletions(-)
    >
    > diff --git a/arch/arm/include/asm/mmu_context.h b/arch/arm/include/asm/mmu_context.h
    > index f99ed524fe41..84e58956fcab 100644
    > --- a/arch/arm/include/asm/mmu_context.h
    > +++ b/arch/arm/include/asm/mmu_context.h
    > @@ -26,6 +26,8 @@ void __check_vmalloc_seq(struct mm_struct *mm);
    > #ifdef CONFIG_CPU_HAS_ASID
    >
    > void check_and_switch_context(struct mm_struct *mm, struct task_struct *tsk);
    > +
    > +#define init_new_context init_new_context
    > static inline int
    > init_new_context(struct task_struct *tsk, struct mm_struct *mm)
    > {
    > @@ -92,32 +94,10 @@ static inline void finish_arch_post_lock_switch(void)
    >
    > #endif /* CONFIG_MMU */
    >
    > -static inline int
    > -init_new_context(struct task_struct *tsk, struct mm_struct *mm)
    > -{
    > - return 0;
    > -}
    > -
    > -
    > #endif /* CONFIG_CPU_HAS_ASID */
    >
    > -#define destroy_context(mm) do { } while(0)
    > #define activate_mm(prev,next) switch_mm(prev, next, NULL)

    Actually this can also go away too.

    ARM switch_mm(prev, next, tsk) -> check_and_switch_context(next, tsk) but latter
    doesn't use @tsk at all. With patch below, you can remove above as well...

    -------->
    From 672e0f78a94892794057a5a7542d85b71c1369c4 Mon Sep 17 00:00:00 2001
    From: Vineet Gupta <vgupta@synopsys.com>
    Date: Mon, 27 Jul 2020 21:12:42 -0700
    Subject: [PATCH] ARM: mm: check_and_switch_context() doesn't use @tsk arg

    Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
    ---
    arch/arm/include/asm/efi.h | 2 +-
    arch/arm/include/asm/mmu_context.h | 5 ++---
    arch/arm/mm/context.c | 2 +-
    3 files changed, 4 insertions(+), 5 deletions(-)

    diff --git a/arch/arm/include/asm/efi.h b/arch/arm/include/asm/efi.h
    index 5dcf3c6011b7..0995b308149d 100644
    --- a/arch/arm/include/asm/efi.h
    +++ b/arch/arm/include/asm/efi.h
    @@ -37,7 +37,7 @@ int efi_set_mapping_permissions(struct mm_struct *mm,
    efi_memory_desc_t *md);

    static inline void efi_set_pgd(struct mm_struct *mm)
    {
    - check_and_switch_context(mm, NULL);
    + check_and_switch_context(mm);
    }

    void efi_virtmap_load(void);
    diff --git a/arch/arm/include/asm/mmu_context.h b/arch/arm/include/asm/mmu_context.h
    index f99ed524fe41..c96360fa3466 100644
    --- a/arch/arm/include/asm/mmu_context.h
    +++ b/arch/arm/include/asm/mmu_context.h
    @@ -25,7 +25,7 @@ void __check_vmalloc_seq(struct mm_struct *mm);

    #ifdef CONFIG_CPU_HAS_ASID

    -void check_and_switch_context(struct mm_struct *mm, struct task_struct *tsk);
    +void check_and_switch_context(struct mm_struct *mm);
    static inline int
    init_new_context(struct task_struct *tsk, struct mm_struct *mm)
    {
    @@ -47,8 +47,7 @@ static inline void a15_erratum_get_cpumask(int this_cpu, struct
    mm_struct *mm,

    #ifdef CONFIG_MMU

    -static inline void check_and_switch_context(struct mm_struct *mm,
    - struct task_struct *tsk)
    +static inline void check_and_switch_context(struct mm_struct *mm)
    {
    if (unlikely(mm->context.vmalloc_seq != init_mm.context.vmalloc_seq))
    __check_vmalloc_seq(mm);
    diff --git a/arch/arm/mm/context.c b/arch/arm/mm/context.c
    index b7525b433f3e..86c411e1d7cb 100644
    --- a/arch/arm/mm/context.c
    +++ b/arch/arm/mm/context.c
    @@ -234,7 +234,7 @@ static u64 new_context(struct mm_struct *mm, unsigned int cpu)
    return asid | generation;
    }

    -void check_and_switch_context(struct mm_struct *mm, struct task_struct *tsk)
    +void check_and_switch_context(struct mm_struct *mm)
    {
    unsigned long flags;
    unsigned int cpu = smp_processor_id();
    --
    2.20.1
    \
     
     \ /
      Last update: 2020-07-28 06:15    [W:2.377 / U:0.040 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site