Skip to content

Commit

Permalink
KVM: x86: Drop explicit @func param from ->set_supported_cpuid()
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Sean Christopherson authored and Paolo Bonzini committed Mar 16, 2020
1 parent 7392079 commit 160b486
Show file tree
Hide file tree
Showing 4 changed files with 6 additions and 6 deletions.
2 changes: 1 addition & 1 deletion arch/x86/include/asm/kvm_host.h
Original file line number Diff line number Diff line change
Expand Up @@ -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);

Expand Down
2 changes: 1 addition & 1 deletion arch/x86/kvm/cpuid.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;

Expand Down
4 changes: 2 additions & 2 deletions arch/x86/kvm/svm.c
Original file line number Diff line number Diff line change
Expand Up @@ -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 */
Expand Down
4 changes: 2 additions & 2 deletions arch/x86/kvm/vmx/vmx.c
Original file line number Diff line number Diff line change
Expand Up @@ -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);
}

Expand Down

0 comments on commit 160b486

Please sign in to comment.