Skip to content

Commit

Permalink
x86/virt: KVM: Open code cpu_has_vmx() in KVM VMX
Browse files Browse the repository at this point in the history
Fold the raw CPUID check for VMX into kvm_is_vmx_supported(), its sole
user.  Keep the check even though KVM also checks X86_FEATURE_VMX, as the
intent is to provide a unique error message if VMX is unsupported by
hardware, whereas X86_FEATURE_VMX may be clear due to firmware and/or
kernel actions.

No functional change intended.

Reviewed-by: Kai Huang <kai.huang@intel.com>
Link: https://lore.kernel.org/r/20230721201859.2307736-10-seanjc@google.com
Signed-off-by: Sean Christopherson <seanjc@google.com>
  • Loading branch information
Sean Christopherson committed Aug 3, 2023
1 parent 261cd5e commit b6a6af0
Show file tree
Hide file tree
Showing 2 changed files with 1 addition and 11 deletions.
10 changes: 0 additions & 10 deletions arch/x86/include/asm/virtext.h
Original file line number Diff line number Diff line change
Expand Up @@ -22,14 +22,6 @@
/*
* VMX functions:
*/

static inline int cpu_has_vmx(void)
{
unsigned long ecx = cpuid_ecx(1);
return test_bit(5, &ecx); /* CPUID.1:ECX.VMX[bit 5] -> VT */
}


/**
* cpu_vmxoff() - Disable VMX on the current CPU
*
Expand Down Expand Up @@ -61,8 +53,6 @@ static inline int cpu_vmx_enabled(void)
}

/** Disable VMX if it is enabled on the current CPU
*
* You shouldn't call this if cpu_has_vmx() returns 0.
*/
static inline void __cpu_emergency_vmxoff(void)
{
Expand Down
2 changes: 1 addition & 1 deletion arch/x86/kvm/vmx/vmx.c
Original file line number Diff line number Diff line change
Expand Up @@ -2699,7 +2699,7 @@ static bool kvm_is_vmx_supported(void)
{
int cpu = raw_smp_processor_id();

if (!cpu_has_vmx()) {
if (!(cpuid_ecx(1) & feature_bit(VMX))) {
pr_err("VMX not supported by CPU %d\n", cpu);
return false;
}
Expand Down

0 comments on commit b6a6af0

Please sign in to comment.