提交 505d7b19 编写于 作者: R Russell King 提交者: Russell King

[ARM SMP] Ensure secondary CPUs have a clean TLB

Since ARMv6 CPUs will not flush the TLB on context switches, it is
possible that we may end up with some global TLB entries remaining
present, eventually upsetting userspace.  Explicitly flush the
entire TLB on secondary CPUs as they startup, after we have switched
to the init_mm page tables.
Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
上级 41c018b7
...@@ -176,6 +176,7 @@ asmlinkage void __cpuinit secondary_start_kernel(void) ...@@ -176,6 +176,7 @@ asmlinkage void __cpuinit secondary_start_kernel(void)
cpu_set(cpu, mm->cpu_vm_mask); cpu_set(cpu, mm->cpu_vm_mask);
cpu_switch_mm(mm->pgd, mm); cpu_switch_mm(mm->pgd, mm);
enter_lazy_tlb(mm, current); enter_lazy_tlb(mm, current);
local_flush_tlb_all();
cpu_init(); cpu_init();
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册