Commit 558ec8ad authored by Paul Burton's avatar Paul Burton

MIPS: mm: Remove local_flush_tlb_mm()

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: default avatarPaul Burton <paul.burton@mips.com>
Cc: linux-mips@vger.kernel.org
parent f7908a00
...@@ -14,7 +14,6 @@ ...@@ -14,7 +14,6 @@
* - flush_tlb_kernel_range(start, end) flushes a range of kernel pages * - flush_tlb_kernel_range(start, end) flushes a range of kernel pages
*/ */
extern void local_flush_tlb_all(void); 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, extern void local_flush_tlb_range(struct vm_area_struct *vma,
unsigned long start, unsigned long end); unsigned long start, unsigned long end);
extern void local_flush_tlb_kernel_range(unsigned long start, extern void local_flush_tlb_kernel_range(unsigned long start,
...@@ -23,6 +22,8 @@ extern void local_flush_tlb_page(struct vm_area_struct *vma, ...@@ -23,6 +22,8 @@ extern void local_flush_tlb_page(struct vm_area_struct *vma,
unsigned long page); unsigned long page);
extern void local_flush_tlb_one(unsigned long vaddr); extern void local_flush_tlb_one(unsigned long vaddr);
#include <asm/mmu_context.h>
#ifdef CONFIG_SMP #ifdef CONFIG_SMP
extern void flush_tlb_all(void); extern void flush_tlb_all(void);
...@@ -36,7 +37,7 @@ extern void flush_tlb_one(unsigned long vaddr); ...@@ -36,7 +37,7 @@ extern void flush_tlb_one(unsigned long vaddr);
#else /* CONFIG_SMP */ #else /* CONFIG_SMP */
#define flush_tlb_all() local_flush_tlb_all() #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_range(vma, vmaddr, end) local_flush_tlb_range(vma, vmaddr, end)
#define flush_tlb_kernel_range(vmaddr,end) \ #define flush_tlb_kernel_range(vmaddr,end) \
local_flush_tlb_kernel_range(vmaddr, end) local_flush_tlb_kernel_range(vmaddr, end)
......
...@@ -487,7 +487,7 @@ void flush_tlb_all(void) ...@@ -487,7 +487,7 @@ void flush_tlb_all(void)
static void flush_tlb_mm_ipi(void *mm) static void flush_tlb_mm_ipi(void *mm)
{ {
local_flush_tlb_mm((struct mm_struct *)mm); drop_mmu_context((struct mm_struct *)mm);
} }
/* /*
...@@ -540,7 +540,7 @@ void flush_tlb_mm(struct mm_struct *mm) ...@@ -540,7 +540,7 @@ void flush_tlb_mm(struct mm_struct *mm)
cpu_context(cpu, mm) = 0; cpu_context(cpu, mm) = 0;
} }
} }
local_flush_tlb_mm(mm); drop_mmu_context(mm);
preempt_enable(); preempt_enable();
} }
......
...@@ -67,18 +67,6 @@ void local_flush_tlb_all(void) ...@@ -67,18 +67,6 @@ void local_flush_tlb_all(void)
local_irq_restore(flags); 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, void local_flush_tlb_range(struct vm_area_struct *vma, unsigned long start,
unsigned long end) unsigned long end)
{ {
......
...@@ -104,13 +104,6 @@ void local_flush_tlb_all(void) ...@@ -104,13 +104,6 @@ void local_flush_tlb_all(void)
} }
EXPORT_SYMBOL(local_flush_tlb_all); 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, void local_flush_tlb_range(struct vm_area_struct *vma, unsigned long start,
unsigned long end) unsigned long end)
{ {
......
...@@ -50,11 +50,6 @@ void local_flush_tlb_all(void) ...@@ -50,11 +50,6 @@ void local_flush_tlb_all(void)
local_irq_restore(flags); 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, void local_flush_tlb_range(struct vm_area_struct *vma, unsigned long start,
unsigned long end) unsigned long end)
{ {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment