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
1 changed files with 1 additions and 0 deletions
|
@ -217,6 +217,7 @@ void switch_mmu_context(struct mm_struct *prev, struct mm_struct *next)
|
||||||
id = steal_context_smp(id);
|
id = steal_context_smp(id);
|
||||||
if (id == MMU_NO_CONTEXT)
|
if (id == MMU_NO_CONTEXT)
|
||||||
goto again;
|
goto again;
|
||||||
|
goto stolen;
|
||||||
}
|
}
|
||||||
#endif /* CONFIG_SMP */
|
#endif /* CONFIG_SMP */
|
||||||
id = steal_context_up(id);
|
id = steal_context_up(id);
|
||||||
|
|
Loading…
Reference in a new issue