On 21/02/20 16:23, Sean Christopherson wrote: > > I'm guessing no VMM actually uses this ioctl(), e.g. neither Qemu or CrosVM > use it, which is why the broken behavior has gone unnoticed. Don't suppose > you'd want to write a selftest to hammer KVM_{SET,GET}_CPUID2? > > int kvm_vcpu_ioctl_get_cpuid2(struct kvm_vcpu *vcpu, > struct kvm_cpuid2 *cpuid, > struct kvm_cpuid_entry2 __user *entries) > { > if (cpuid->nent < vcpu->arch.cpuid_nent) > return -E2BIG; > > if (copy_to_user(entries, &vcpu->arch.cpuid_entries, > vcpu->arch.cpuid_nent * sizeof(struct kvm_cpuid_entry2))) > return -EFAULT; > > cpuid->nent = vcpu->arch.cpuid_nent; > > return 0; > } I would just drop KVM_GET_CPUID2 altogether and see if someone complains. Paolo