|
@@ -91,6 +91,7 @@ static inline struct vcpu_vmx *to_vmx(struct kvm_vcpu *vcpu)
|
|
|
}
|
|
|
|
|
|
static int init_rmode(struct kvm *kvm);
|
|
|
+static u64 construct_eptp(unsigned long root_hpa);
|
|
|
|
|
|
static DEFINE_PER_CPU(struct vmcs *, vmxarea);
|
|
|
static DEFINE_PER_CPU(struct vmcs *, current_vmcs);
|
|
@@ -1422,6 +1423,8 @@ static void exit_lmode(struct kvm_vcpu *vcpu)
|
|
|
static void vmx_flush_tlb(struct kvm_vcpu *vcpu)
|
|
|
{
|
|
|
vpid_sync_vcpu_all(to_vmx(vcpu));
|
|
|
+ if (vm_need_ept())
|
|
|
+ ept_sync_context(construct_eptp(vcpu->arch.mmu.root_hpa));
|
|
|
}
|
|
|
|
|
|
static void vmx_decache_cr4_guest_bits(struct kvm_vcpu *vcpu)
|