Skip to content

Commit

Permalink
MIPS: mm: Remove local_flush_tlb_mm()
Browse files Browse the repository at this point in the history
All 3 variants of local_flush_tlb_mm() are now effectively simple calls
to drop_mmu_context(). Remove them and use drop_mmu_context() directly.

Signed-off-by: Paul Burton <paul.burton@mips.com>
Cc: linux-mips@vger.kernel.org
  • Loading branch information
Paul Burton committed Feb 4, 2019
1 parent f7908a0 commit 558ec8a
Show file tree
Hide file tree
Showing 5 changed files with 5 additions and 28 deletions.
5 changes: 3 additions & 2 deletions arch/mips/include/asm/tlbflush.h
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,6 @@
* - flush_tlb_kernel_range(start, end) flushes a range of kernel pages
*/
extern void local_flush_tlb_all(void);
extern void local_flush_tlb_mm(struct mm_struct *mm);
extern void local_flush_tlb_range(struct vm_area_struct *vma,
unsigned long start, unsigned long end);
extern void local_flush_tlb_kernel_range(unsigned long start,
Expand All @@ -23,6 +22,8 @@ extern void local_flush_tlb_page(struct vm_area_struct *vma,
unsigned long page);
extern void local_flush_tlb_one(unsigned long vaddr);

#include <asm/mmu_context.h>

#ifdef CONFIG_SMP

extern void flush_tlb_all(void);
Expand All @@ -36,7 +37,7 @@ extern void flush_tlb_one(unsigned long vaddr);
#else /* CONFIG_SMP */

#define flush_tlb_all() local_flush_tlb_all()
#define flush_tlb_mm(mm) local_flush_tlb_mm(mm)
#define flush_tlb_mm(mm) drop_mmu_context(mm)
#define flush_tlb_range(vma, vmaddr, end) local_flush_tlb_range(vma, vmaddr, end)
#define flush_tlb_kernel_range(vmaddr,end) \
local_flush_tlb_kernel_range(vmaddr, end)
Expand Down
4 changes: 2 additions & 2 deletions arch/mips/kernel/smp.c
Original file line number Diff line number Diff line change
Expand Up @@ -487,7 +487,7 @@ void flush_tlb_all(void)

static void flush_tlb_mm_ipi(void *mm)
{
local_flush_tlb_mm((struct mm_struct *)mm);
drop_mmu_context((struct mm_struct *)mm);
}

/*
Expand Down Expand Up @@ -540,7 +540,7 @@ void flush_tlb_mm(struct mm_struct *mm)
cpu_context(cpu, mm) = 0;
}
}
local_flush_tlb_mm(mm);
drop_mmu_context(mm);

preempt_enable();
}
Expand Down
12 changes: 0 additions & 12 deletions arch/mips/mm/tlb-r3k.c
Original file line number Diff line number Diff line change
Expand Up @@ -67,18 +67,6 @@ void local_flush_tlb_all(void)
local_irq_restore(flags);
}

void local_flush_tlb_mm(struct mm_struct *mm)
{
#ifdef DEBUG_TLB
int cpu = smp_processor_id();

if (cpu_context(cpu, mm) != 0)
printk("[tlbmm<%lu>]", (unsigned long)cpu_context(cpu, mm));
#endif

drop_mmu_context(mm);
}

void local_flush_tlb_range(struct vm_area_struct *vma, unsigned long start,
unsigned long end)
{
Expand Down
7 changes: 0 additions & 7 deletions arch/mips/mm/tlb-r4k.c
Original file line number Diff line number Diff line change
Expand Up @@ -104,13 +104,6 @@ void local_flush_tlb_all(void)
}
EXPORT_SYMBOL(local_flush_tlb_all);

/* All entries common to a mm share an asid. To effectively flush
these entries, we just bump the asid. */
void local_flush_tlb_mm(struct mm_struct *mm)
{
drop_mmu_context(mm);
}

void local_flush_tlb_range(struct vm_area_struct *vma, unsigned long start,
unsigned long end)
{
Expand Down
5 changes: 0 additions & 5 deletions arch/mips/mm/tlb-r8k.c
Original file line number Diff line number Diff line change
Expand Up @@ -50,11 +50,6 @@ void local_flush_tlb_all(void)
local_irq_restore(flags);
}

void local_flush_tlb_mm(struct mm_struct *mm)
{
drop_mmu_context(mm);
}

void local_flush_tlb_range(struct vm_area_struct *vma, unsigned long start,
unsigned long end)
{
Expand Down

0 comments on commit 558ec8a

Please sign in to comment.