From c7f8cae268f9864a7b21d9edf6f32bdd10b1075d Mon Sep 17 00:00:00 2001 From: Robert Mustacchi Date: Tue, 14 Jun 2011 10:46:47 -0700 Subject: HVM-367 Clean up KVM_SET_CPUID2 --- kvm_x86.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) (limited to 'kvm_x86.c') diff --git a/kvm_x86.c b/kvm_x86.c index 25d350d..17c6fe0 100644 --- a/kvm_x86.c +++ b/kvm_x86.c @@ -1662,13 +1662,19 @@ is_efer_nx(void) } int -kvm_vcpu_ioctl_set_cpuid2(struct kvm_vcpu *vcpu, struct kvm_cpuid2 *cpuid) +kvm_vcpu_ioctl_set_cpuid2(struct kvm_vcpu *vcpu, struct kvm_cpuid2 *cpuid, + int *rv, intptr_t arg) { + struct kvm_cpuid2 *id; + + id = (void *)arg; + if (cpuid->nent > KVM_MAX_CPUID_ENTRIES) return (E2BIG); - bcopy(cpuid->entries, vcpu->arch.cpuid_entries, - cpuid->nent * sizeof (struct kvm_cpuid_entry2)); + if (copyin(id->entries, vcpu->arch.cpuid_entries, + cpuid->nent * sizeof (struct kvm_cpuid_entry2)) < 0) + return (EFAULT); vcpu_load(vcpu); vcpu->arch.cpuid_nent = cpuid->nent; -- cgit v1.2.3