Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 592ac93a authored by Randolph Chung's avatar Randolph Chung Committed by Kyle McMartin
Browse files

[PARISC] Optimize TLB flush on SMP systems

parent e7b3ca08
Loading
Loading
Loading
Loading
+11 −13
Original line number Diff line number Diff line
@@ -39,21 +39,19 @@ extern void flush_tlb_all_local(void *);
 * etc. do not do that).
 */

static inline void flush_tlb_mm(struct mm_struct *mm)
static inline void __flush_tlb_mm(void *mmv)
{
	BUG_ON(mm == &init_mm); /* Should never happen */
	struct mm_struct *mm = (struct mm_struct *)mmv;
	if (mm == current->active_mm)
		load_context(mm->context);
}

#ifdef CONFIG_SMP
	flush_tlb_all();
#else
	if (mm) {
static inline void flush_tlb_mm(struct mm_struct *mm)
{
	if (mm->context != 0)
		free_sid(mm->context);
	mm->context = alloc_sid();
		if (mm == current->active_mm)
			load_context(mm->context);
	}
#endif
	on_each_cpu(__flush_tlb_mm, mm, 1, 1);
}

extern __inline__ void flush_tlb_pgtables(struct mm_struct *mm, unsigned long start, unsigned long end)