mirror of
https://github.com/torvalds/linux.git
synced 2024-12-11 21:52:04 +00:00
KVM: VMX: Add ept_sync_context in flush_tlb
Fix a potention issue caused by kvm_mmu_slot_remove_write_access(). The old behavior don't sync EPT TLB with modified EPT entry, which result in inconsistent content of EPT TLB and EPT table. Signed-off-by: Sheng Yang <sheng.yang@intel.com> Signed-off-by: Avi Kivity <avi@qumranet.com>
This commit is contained in:
parent
5a4c928804
commit
4e1096d27f
@ -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)
|
||||
|
Loading…
Reference in New Issue
Block a user