powerpc/64s/radix: Explicitly flush ERAT with local LPID invalidation
authorNicholas Piggin <npiggin@gmail.com>
Mon, 27 Aug 2018 03:03:02 +0000 (13:03 +1000)
committerMichael Ellerman <mpe@ellerman.id.au>
Thu, 4 Oct 2018 13:16:53 +0000 (23:16 +1000)
Local radix TLB flush operations that operate on congruence classes
have explicit ERAT flushes for POWER9. The process scoped LPID flush
did not have a flush, so add it.

Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
arch/powerpc/mm/tlb-radix.c

index fef3e1eb3a1998158287884cc08bbe0736cbbc30..4e798f33c530332243d1a0483d378f43b9aa6a40 100644 (file)
@@ -366,6 +366,7 @@ static inline void _tlbiel_lpid_guest(unsigned long lpid, unsigned long ric)
                __tlbiel_lpid_guest(lpid, set, RIC_FLUSH_TLB);
 
        asm volatile("ptesync": : :"memory");
+       asm volatile(PPC_INVALIDATE_ERAT : : :"memory");
 }