|
@@ -2387,6 +2387,10 @@ static int mmu_alloc_roots(struct kvm_vcpu *vcpu)
|
|
|
return 0;
|
|
|
}
|
|
|
direct = !is_paging(vcpu);
|
|
|
+
|
|
|
+ if (mmu_check_root(vcpu, root_gfn))
|
|
|
+ return 1;
|
|
|
+
|
|
|
for (i = 0; i < 4; ++i) {
|
|
|
hpa_t root = vcpu->arch.mmu.pae_root[i];
|
|
|
|
|
@@ -2398,10 +2402,10 @@ static int mmu_alloc_roots(struct kvm_vcpu *vcpu)
|
|
|
continue;
|
|
|
}
|
|
|
root_gfn = pdptr >> PAGE_SHIFT;
|
|
|
+ if (mmu_check_root(vcpu, root_gfn))
|
|
|
+ return 1;
|
|
|
} else if (vcpu->arch.mmu.root_level == 0)
|
|
|
root_gfn = 0;
|
|
|
- if (mmu_check_root(vcpu, root_gfn))
|
|
|
- return 1;
|
|
|
if (tdp_enabled) {
|
|
|
direct = 1;
|
|
|
root_gfn = i << 30;
|