KVM: PPC: Book3S HV: radix use correct tlbie sequence in kvmppc_radix_tlbie_page
Subsystems (2)
Nicholas Piggin
reviewerPATCH v3 1/8 KVM: PPC: Book3S HV: radix use correct tlbie sequence in kvmppc_radix_tlbie_page
The standard eieio ; tlbsync ; ptesync must follow tlbie to ensure it is ordered with respect to subsequent operations.
Signed-off-by Nicholas Piggin <[email protected]>
--- arch/powerpc/kvm/book3s_64_mmu_radix.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
arch/powerpc/kvm/book3s_64_mmu_radix.c +2 -2
@@ -162,7 +162,7 @@ static void kvmppc_radix_tlbie_page(struct kvm *kvm, unsigned long addr,if (cpu_has_feature (CPU_FTR_P9_TLBIE_BUG )) asm volatile(PPC_TLBIE_5(%0, %1, 0, 0, 1) : : "r" (addr), "r" (kvm->arch.lpid) : "memory"); - asmvolatile ("ptesync" : : :"memory" ); + asmvolatile ("eieio ; tlbsync ; ptesync" : : :"memory" ); }static void kvmppc_radix_flush_pwc (struct kvm *kvm,unsigned long addr)
@@ -173,7 +173,7 @@ static void kvmppc_radix_flush_pwc(struct kvm *kvm, unsigned long addr)/* RIC=1 PRS=0 R=1 IS=2 */ asm volatile(PPC_TLBIE_5(%0, %1, 1, 0, 1) : : "r" (rb), "r" (kvm->arch.lpid) : "memory"); - asmvolatile ("ptesync" : : :"memory" ); + asmvolatile ("eieio ; tlbsync ; ptesync" : : :"memory" ); } unsigned long kvmppc_radix_update_pte(struct kvm *kvm, pte_t *ptep,
Signature · 1 line
2.17.0