Browse Source

KVM: VMX: align vmx->nested.nested_vmx_secondary_ctls_high to vmx->rdtscp_enabled

The SECONDARY_EXEC_RDTSCP must be available iff RDTSCP is enabled in the
guest.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Paolo Bonzini 10 years ago
parent
commit
8b97265a15
1 changed files with 8 additions and 3 deletions
  1. 8 3
      arch/x86/kvm/vmx.c

+ 8 - 3
arch/x86/kvm/vmx.c

@@ -8686,9 +8686,14 @@ static void vmx_cpuid_update(struct kvm_vcpu *vcpu)
 					exec_control);
 					exec_control);
 		}
 		}
 
 
-		if (nested && !vmx->rdtscp_enabled)
-			vmx->nested.nested_vmx_secondary_ctls_high &=
-				~SECONDARY_EXEC_RDTSCP;
+		if (nested) {
+			if (vmx->rdtscp_enabled)
+				vmx->nested.nested_vmx_secondary_ctls_high |=
+					SECONDARY_EXEC_RDTSCP;
+			else
+				vmx->nested.nested_vmx_secondary_ctls_high &=
+					~SECONDARY_EXEC_RDTSCP;
+		}
 	}
 	}
 
 
 	/* Exposing INVPCID only when PCID is exposed */
 	/* Exposing INVPCID only when PCID is exposed */