arm64: KVM: Fix TLB invalidation by IPA/VMID
authorMarc Zyngier <marc.zyngier@arm.com>
Sun, 11 Jan 2015 13:10:10 +0000 (14:10 +0100)
committerPaolo Bonzini <pbonzini@redhat.com>
Mon, 12 Jan 2015 10:15:23 +0000 (11:15 +0100)
It took about two years for someone to notice that the IPA passed
to TLBI IPAS2E1IS must be shifted by 12 bits. Clearly our reviewing
is not as good as it should be...

Paper bag time for me.

Reported-by: Mario Smarduch <m.smarduch@samsung.com>
Tested-by: Mario Smarduch <m.smarduch@samsung.com>
Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
Signed-off-by: Christoffer Dall <christoffer.dall@linaro.org>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
arch/arm64/kvm/hyp.S

index fbe909f..c3ca89c 100644 (file)
@@ -1014,6 +1014,7 @@ ENTRY(__kvm_tlb_flush_vmid_ipa)
         * Instead, we invalidate Stage-2 for this IPA, and the
         * whole of Stage-1. Weep...
         */
+       lsr     x1, x1, #12
        tlbi    ipas2e1is, x1
        /*
         * We have to ensure completion of the invalidation at Stage-2,