This isn't readily apparent from reading the code. Signed-off-by: Palmer Dabbelt <pal...@sifive.com> --- arch/riscv/kernel/smpboot.c | 2 ++ 1 file changed, 2 insertions(+)
diff --git a/arch/riscv/kernel/smpboot.c b/arch/riscv/kernel/smpboot.c index 5437a04babcd..953bc540207d 100644 --- a/arch/riscv/kernel/smpboot.c +++ b/arch/riscv/kernel/smpboot.c @@ -107,6 +107,8 @@ asmlinkage void __init smp_callin(void) trap_init(); notify_cpu_starting(smp_processor_id()); set_cpu_online(smp_processor_id(), 1); + /* Remote TLB flushes are ignored while the CPU is offline, so emit a local + * TLB flush right now just in case. */ local_flush_tlb_all(); local_irq_enable(); preempt_disable(); -- 2.16.4