Commit 42aa53b4 authored by David Hildenbrand's avatar David Hildenbrand Committed by Radim Krčmář

KVM: VMX: always require WB memory type for EPT

We already always set that type but don't check if it is supported. Also
for nVMX, we only support WB for now. Let's just require it.
Signed-off-by: default avatarDavid Hildenbrand <david@redhat.com>
Signed-off-by: default avatarRadim Krčmář <rkrcmar@redhat.com>
parent bb97a016
...@@ -1200,6 +1200,11 @@ static inline bool cpu_has_vmx_ept_4levels(void) ...@@ -1200,6 +1200,11 @@ static inline bool cpu_has_vmx_ept_4levels(void)
return vmx_capability.ept & VMX_EPT_PAGE_WALK_4_BIT; return vmx_capability.ept & VMX_EPT_PAGE_WALK_4_BIT;
} }
static inline bool cpu_has_vmx_ept_mt_wb(void)
{
return vmx_capability.ept & VMX_EPTP_WB_BIT;
}
static inline bool cpu_has_vmx_ept_ad_bits(void) static inline bool cpu_has_vmx_ept_ad_bits(void)
{ {
return vmx_capability.ept & VMX_EPT_AD_BIT; return vmx_capability.ept & VMX_EPT_AD_BIT;
...@@ -4300,7 +4305,6 @@ static u64 construct_eptp(struct kvm_vcpu *vcpu, unsigned long root_hpa) ...@@ -4300,7 +4305,6 @@ static u64 construct_eptp(struct kvm_vcpu *vcpu, unsigned long root_hpa)
{ {
u64 eptp = VMX_EPTP_MT_WB | VMX_EPTP_PWL_4; u64 eptp = VMX_EPTP_MT_WB | VMX_EPTP_PWL_4;
/* TODO write the value reading from MSR */
if (enable_ept_ad_bits && if (enable_ept_ad_bits &&
(!is_guest_mode(vcpu) || nested_ept_ad_enabled(vcpu))) (!is_guest_mode(vcpu) || nested_ept_ad_enabled(vcpu)))
eptp |= VMX_EPTP_AD_ENABLE_BIT; eptp |= VMX_EPTP_AD_ENABLE_BIT;
...@@ -6635,7 +6639,8 @@ static __init int hardware_setup(void) ...@@ -6635,7 +6639,8 @@ static __init int hardware_setup(void)
init_vmcs_shadow_fields(); init_vmcs_shadow_fields();
if (!cpu_has_vmx_ept() || if (!cpu_has_vmx_ept() ||
!cpu_has_vmx_ept_4levels()) { !cpu_has_vmx_ept_4levels() ||
!cpu_has_vmx_ept_mt_wb()) {
enable_ept = 0; enable_ept = 0;
enable_unrestricted_guest = 0; enable_unrestricted_guest = 0;
enable_ept_ad_bits = 0; enable_ept_ad_bits = 0;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment