diff --git a/hypervisor/arch/x86/vmx.c b/hypervisor/arch/x86/vmx.c index d36084694..13c2d8af0 100644 --- a/hypervisor/arch/x86/vmx.c +++ b/hypervisor/arch/x86/vmx.c @@ -1391,14 +1391,15 @@ static void init_exec_ctrl(struct vcpu *vcpu) value64); if (is_vapic_intr_delivery_supported()) { - /* these fields are supported only on processors - * that support the 1-setting of the "virtual-interrupt - * delivery" VM-execution control + /* Disable all EOI VMEXIT by default and + * clear RVI and SVI. */ - exec_vmwrite64(VMX_EOI_EXIT0_FULL, ~0UL); - exec_vmwrite64(VMX_EOI_EXIT1_FULL, ~0UL); - exec_vmwrite64(VMX_EOI_EXIT2_FULL, ~0UL); - exec_vmwrite64(VMX_EOI_EXIT3_FULL, ~0UL); + exec_vmwrite64(VMX_EOI_EXIT0_FULL, 0UL); + exec_vmwrite64(VMX_EOI_EXIT1_FULL, 0UL); + exec_vmwrite64(VMX_EOI_EXIT2_FULL, 0UL); + exec_vmwrite64(VMX_EOI_EXIT3_FULL, 0UL); + + exec_vmwrite16(VMX_GUEST_INTR_STATUS, 0); } }