[PATCH] KVM: Enable VMX-related bits in MSR_IA32_FEATURE_CONTROL.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



The spec (Vol 3C, Chapter 34.1) regarding the IA32_FEATURE_CONTROL MSR says "Therefore the lock bit must be set after configuring support for Intel Virtualization Technology and prior to transferring control to an option ROM or the OS." and regarding bit 2: "This bit enables VMX for system executive that do not require SMX."

Signed-off-by: Julian Stecklina <js@xxxxxxxxx>
---
 arch/x86/kvm/vmx.c |    7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/arch/x86/kvm/vmx.c b/arch/x86/kvm/vmx.c
index 4ea7678..aef1e5b 100644
--- a/arch/x86/kvm/vmx.c
+++ b/arch/x86/kvm/vmx.c
@@ -2007,7 +2007,12 @@ static int vmx_get_vmx_msr(struct kvm_vcpu *vcpu, u32 msr_index, u64 *pdata)
 
 	switch (msr_index) {
 	case MSR_IA32_FEATURE_CONTROL:
-		*pdata = 0;
+                /*
+                 * If nested VMX is enabled, set the lock bit (bit 0)
+                 * and the "Enable VMX outside SMX" bit (bit 2) in the
+                 * FEATURE_CONTROL MSR.
+                 */
+		*pdata = nested_vmx_allowed(vcpu) ? 0x5 : 0;
 		break;
 	case MSR_IA32_VMX_BASIC:
 		/*
-- 
1.7.9.2

--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux