diff options
author | Vineet Gupta <vgupta@synopsys.com> | 2013-10-27 14:49:02 +0530 |
---|---|---|
committer | Vineet Gupta <vgupta@synopsys.com> | 2013-11-06 10:41:45 +0530 |
commit | 5ea72a90261552ed5fdca35239feb6cba498301e (patch) | |
tree | c83f798813ae867ec10c35be6d2f9c3bc99609b5 /arch/arc/include/asm/tlbflush.h | |
parent | 63eca94ca206e342bad4a06a86d8e7eda3053a4e (diff) |
ARC: [SMP] TLB flush
- Add mm_cpumask setting (aggregating only, unlike some other arches)
used to restrict the TLB flush cross-calling
- cross-calling versions of TLB flush routines (thanks to Noam)
Signed-off-by: Noam Camus <noamc@ezchip.com>
Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
Diffstat (limited to 'arch/arc/include/asm/tlbflush.h')
-rw-r--r-- | arch/arc/include/asm/tlbflush.h | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/arch/arc/include/asm/tlbflush.h b/arch/arc/include/asm/tlbflush.h index b2f9bc7f68c..71c7b2e4b87 100644 --- a/arch/arc/include/asm/tlbflush.h +++ b/arch/arc/include/asm/tlbflush.h @@ -18,11 +18,18 @@ void local_flush_tlb_kernel_range(unsigned long start, unsigned long end); void local_flush_tlb_range(struct vm_area_struct *vma, unsigned long start, unsigned long end); -/* XXX: Revisit for SMP */ +#ifndef CONFIG_SMP #define flush_tlb_range(vma, s, e) local_flush_tlb_range(vma, s, e) #define flush_tlb_page(vma, page) local_flush_tlb_page(vma, page) #define flush_tlb_kernel_range(s, e) local_flush_tlb_kernel_range(s, e) #define flush_tlb_all() local_flush_tlb_all() #define flush_tlb_mm(mm) local_flush_tlb_mm(mm) - +#else +extern void flush_tlb_range(struct vm_area_struct *vma, unsigned long start, + unsigned long end); +extern void flush_tlb_page(struct vm_area_struct *vma, unsigned long page); +extern void flush_tlb_kernel_range(unsigned long start, unsigned long end); +extern void flush_tlb_all(void); +extern void flush_tlb_mm(struct mm_struct *mm); +#endif /* CONFIG_SMP */ #endif |