]> git.karo-electronics.de Git - karo-tx-linux.git/blobdiff - arch/arm/kvm/arm.c
arm/arm64: KVM: Fix VTTBR_BADDR_MASK and pgd alloc
[karo-tx-linux.git] / arch / arm / kvm / arm.c
index 40bc3df6d87beb16bcae750d7628bce19f99bca2..779605122f322e4d0f342c2adeb3d4834f4261e2 100644 (file)
@@ -410,9 +410,9 @@ static void update_vttbr(struct kvm *kvm)
 
        /* update vttbr to be used with the new vmid */
        pgd_phys = virt_to_phys(kvm->arch.pgd);
+       BUG_ON(pgd_phys & ~VTTBR_BADDR_MASK);
        vmid = ((u64)(kvm->arch.vmid) << VTTBR_VMID_SHIFT) & VTTBR_VMID_MASK;
-       kvm->arch.vttbr = pgd_phys & VTTBR_BADDR_MASK;
-       kvm->arch.vttbr |= vmid;
+       kvm->arch.vttbr = pgd_phys | vmid;
 
        spin_unlock(&kvm_vmid_lock);
 }