powerpc/mm: Fix SMP issue with MMU context handling code
In switch_mmu_context() if we call steal_context_smp() to get a context to use we shouldn't fall through and than call steal_context_up(). Doing so can be problematic in that the 'mm' that steal_context_up() ends up using will not get marked dirty in the stale_map[] for other CPUs that might have used that mm. Thus we could end up with stale TLB entries in the other CPUs that can cause all kinda of havoc. Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
This commit is contained in:
parent
4733fd328f
commit
5156ddce6c
|
@ -217,6 +217,7 @@ void switch_mmu_context(struct mm_struct *prev, struct mm_struct *next)
|
|||
id = steal_context_smp(id);
|
||||
if (id == MMU_NO_CONTEXT)
|
||||
goto again;
|
||||
goto stolen;
|
||||
}
|
||||
#endif /* CONFIG_SMP */
|
||||
id = steal_context_up(id);
|
||||
|
|
Loading…
Reference in New Issue