Commit 160b486f authored by Sean Christopherson's avatar Sean Christopherson Committed by Paolo Bonzini
Browse files

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: default avatarVitaly Kuznetsov <vkuznets@redhat.com>
Signed-off-by: default avatarSean Christopherson <sean.j.christopherson@intel.com>
Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
parent 7392079c
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -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);

+1 −1
Original line number Diff line number Diff line
@@ -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;

+2 −2
Original line number Diff line number Diff line
@@ -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 */
+2 −2
Original line number Diff line number Diff line
@@ -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);
}