KVM: x86: Drop explicit @func param from ->set_supported_cpuid()

Drop the explicit @func param from ->set_supported_cpuid() and instead
pull the CPUID function from the relevant entry.  This sets the stage
for hardening guest CPUID updates in future patches, e.g. allows adding
run-time assertions that the CPUID feature being changed is actually
a bit in the referenced CPUID entry.

No functional change intended.

Reviewed-by: Vitaly Kuznetsov <vkuznets@redhat.com>
Signed-off-by: Sean Christopherson <sean.j.christopherson@intel.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
Sean Christopherson 2020-03-02 15:56:27 -08:00 committed by Paolo Bonzini
parent 7392079c4e
commit 160b486f65
4 changed files with 6 additions and 6 deletions

View File

@ -1161,7 +1161,7 @@ struct kvm_x86_ops {
void (*set_tdp_cr3)(struct kvm_vcpu *vcpu, unsigned long cr3);
void (*set_supported_cpuid)(u32 func, struct kvm_cpuid_entry2 *entry);
void (*set_supported_cpuid)(struct kvm_cpuid_entry2 *entry);
bool (*has_wbinvd_exit)(void);

View File

@ -784,7 +784,7 @@ static inline int __do_cpuid_func(struct kvm_cpuid_array *array, u32 function)
break;
}
kvm_x86_ops->set_supported_cpuid(function, entry);
kvm_x86_ops->set_supported_cpuid(entry);
r = 0;

View File

@ -6035,9 +6035,9 @@ static void svm_cpuid_update(struct kvm_vcpu *vcpu)
#define F feature_bit
static void svm_set_supported_cpuid(u32 func, struct kvm_cpuid_entry2 *entry)
static void svm_set_supported_cpuid(struct kvm_cpuid_entry2 *entry)
{
switch (func) {
switch (entry->function) {
case 0x80000001:
if (nested)
entry->ecx |= (1 << 2); /* Set SVM bit */

View File

@ -7128,9 +7128,9 @@ static void vmx_cpuid_update(struct kvm_vcpu *vcpu)
}
}
static void vmx_set_supported_cpuid(u32 func, struct kvm_cpuid_entry2 *entry)
static void vmx_set_supported_cpuid(struct kvm_cpuid_entry2 *entry)
{
if (func == 1 && nested)
if (entry->function == 1 && nested)
entry->ecx |= feature_bit(VMX);
}