From 04532c4f55ef4b577c59744f789d5b1add435503 Mon Sep 17 00:00:00 2001 From: Kyle McMartin Date: Sun, 18 Feb 2007 19:35:45 +0000 Subject: Revert "[PARISC] Optimize TLB flush on SMP systems" This reverts commit 592ac93a607109e0643da6c23ae07ac749e973b1 which causes SMP machines with maxcpus > 1 to fail to boot... --- include/asm-parisc/tlbflush.h | 24 +++++++++++++----------- 1 file changed, 13 insertions(+), 11 deletions(-) (limited to 'include/asm-parisc') diff --git a/include/asm-parisc/tlbflush.h b/include/asm-parisc/tlbflush.h index ae2d120..3313da9 100644 --- a/include/asm-parisc/tlbflush.h +++ b/include/asm-parisc/tlbflush.h @@ -39,19 +39,21 @@ extern void flush_tlb_all_local(void *); * etc. do not do that). */ -static inline void __flush_tlb_mm(void *mmv) -{ - struct mm_struct *mm = (struct mm_struct *)mmv; - if (mm == current->active_mm) - load_context(mm->context); -} - static inline void flush_tlb_mm(struct mm_struct *mm) { - if (mm->context != 0) - free_sid(mm->context); - mm->context = alloc_sid(); - on_each_cpu(__flush_tlb_mm, mm, 1, 1); + BUG_ON(mm == &init_mm); /* Should never happen */ + +#ifdef CONFIG_SMP + flush_tlb_all(); +#else + if (mm) { + if (mm->context != 0) + free_sid(mm->context); + mm->context = alloc_sid(); + if (mm == current->active_mm) + load_context(mm->context); + } +#endif } extern __inline__ void flush_tlb_pgtables(struct mm_struct *mm, unsigned long start, unsigned long end) -- cgit v1.1