2020-07-08 11:05:15

by Paolo Bonzini

[permalink] [raw]
Subject: [PATCH] KVM: x86: Make CR4.VMXE reserved for the guest

CR4.VMXE is reserved unless the VMX CPUID bit is set. On Intel,
it is also tested by vmx_set_cr4, but AMD relies on kvm_valid_cr4,
so fix it.

Signed-off-by: Paolo Bonzini <[email protected]>
---
arch/x86/kvm/x86.h | 2 ++
1 file changed, 2 insertions(+)

diff --git a/arch/x86/kvm/x86.h b/arch/x86/kvm/x86.h
index 56975c6c1e15..224670d7c245 100644
--- a/arch/x86/kvm/x86.h
+++ b/arch/x86/kvm/x86.h
@@ -392,6 +392,8 @@ bool kvm_vcpu_exit_request(struct kvm_vcpu *vcpu);
__reserved_bits |= X86_CR4_LA57; \
if (!__cpu_has(__c, X86_FEATURE_UMIP)) \
__reserved_bits |= X86_CR4_UMIP; \
+ if (!__cpu_has(__c, X86_FEATURE_VMX)) \
+ __reserved_bits |= X86_CR4_VMXE; \
__reserved_bits; \
})

--
2.26.2


2020-07-08 18:22:29

by Jim Mattson

[permalink] [raw]
Subject: Re: [PATCH] KVM: x86: Make CR4.VMXE reserved for the guest

On Wed, Jul 8, 2020 at 4:04 AM Paolo Bonzini <[email protected]> wrote:
>
> CR4.VMXE is reserved unless the VMX CPUID bit is set. On Intel,
> it is also tested by vmx_set_cr4, but AMD relies on kvm_valid_cr4,
> so fix it.
>
> Signed-off-by: Paolo Bonzini <[email protected]>
Reviewed-by: Jim Mattson <[email protected]>