Message ID | 20200201185218.24473-5-sean.j.christopherson@intel.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | KVM: x86: Introduce KVM cpu caps | expand |
Sean Christopherson <sean.j.christopherson@intel.com> writes: > Clean up the error handling in kvm_dev_ioctl_get_cpuid(), which has > gotten a bit crusty as the function has evolved over the years. > > Opportunistically hoist the static @funcs declaration to the top of the > function to make it more obvious that it's a "static const". > > No functional change intended. > > Signed-off-by: Sean Christopherson <sean.j.christopherson@intel.com> > --- > arch/x86/kvm/cpuid.c | 19 +++++++------------ > 1 file changed, 7 insertions(+), 12 deletions(-) > > diff --git a/arch/x86/kvm/cpuid.c b/arch/x86/kvm/cpuid.c > index de52cbb46171..11d5f311ef10 100644 > --- a/arch/x86/kvm/cpuid.c > +++ b/arch/x86/kvm/cpuid.c > @@ -889,45 +889,40 @@ int kvm_dev_ioctl_get_cpuid(struct kvm_cpuid2 *cpuid, > struct kvm_cpuid_entry2 __user *entries, > unsigned int type) > { > - struct kvm_cpuid_entry2 *cpuid_entries; > - int nent = 0, r = -E2BIG, i; > - > static const u32 funcs[] = { > 0, 0x80000000, CENTAUR_CPUID_SIGNATURE, KVM_CPUID_SIGNATURE, > }; > > + struct kvm_cpuid_entry2 *cpuid_entries; > + int nent = 0, r, i; > + > if (cpuid->nent < 1) > - goto out; > + return -E2BIG; > if (cpuid->nent > KVM_MAX_CPUID_ENTRIES) > cpuid->nent = KVM_MAX_CPUID_ENTRIES; > > if (sanity_check_entries(entries, cpuid->nent, type)) > return -EINVAL; > > - r = -ENOMEM; > cpuid_entries = vzalloc(array_size(sizeof(struct kvm_cpuid_entry2), > cpuid->nent)); > if (!cpuid_entries) > - goto out; > + return -ENOMEM; > > - r = 0; > for (i = 0; i < ARRAY_SIZE(funcs); i++) { > r = get_cpuid_func(cpuid_entries, funcs[i], &nent, cpuid->nent, > type); > if (r) > goto out_free; > } > + cpuid->nent = nent; > > - r = -EFAULT; > if (copy_to_user(entries, cpuid_entries, > nent * sizeof(struct kvm_cpuid_entry2))) > - goto out_free; > - cpuid->nent = nent; > - r = 0; > + r = -EFAULT; > > out_free: > vfree(cpuid_entries); > -out: > return r; > } Please [partially] disregard my comment on PATCH 02 Reviewed-by: Vitaly Kuznetsov <vkuznets@redhat.com>
diff --git a/arch/x86/kvm/cpuid.c b/arch/x86/kvm/cpuid.c index de52cbb46171..11d5f311ef10 100644 --- a/arch/x86/kvm/cpuid.c +++ b/arch/x86/kvm/cpuid.c @@ -889,45 +889,40 @@ int kvm_dev_ioctl_get_cpuid(struct kvm_cpuid2 *cpuid, struct kvm_cpuid_entry2 __user *entries, unsigned int type) { - struct kvm_cpuid_entry2 *cpuid_entries; - int nent = 0, r = -E2BIG, i; - static const u32 funcs[] = { 0, 0x80000000, CENTAUR_CPUID_SIGNATURE, KVM_CPUID_SIGNATURE, }; + struct kvm_cpuid_entry2 *cpuid_entries; + int nent = 0, r, i; + if (cpuid->nent < 1) - goto out; + return -E2BIG; if (cpuid->nent > KVM_MAX_CPUID_ENTRIES) cpuid->nent = KVM_MAX_CPUID_ENTRIES; if (sanity_check_entries(entries, cpuid->nent, type)) return -EINVAL; - r = -ENOMEM; cpuid_entries = vzalloc(array_size(sizeof(struct kvm_cpuid_entry2), cpuid->nent)); if (!cpuid_entries) - goto out; + return -ENOMEM; - r = 0; for (i = 0; i < ARRAY_SIZE(funcs); i++) { r = get_cpuid_func(cpuid_entries, funcs[i], &nent, cpuid->nent, type); if (r) goto out_free; } + cpuid->nent = nent; - r = -EFAULT; if (copy_to_user(entries, cpuid_entries, nent * sizeof(struct kvm_cpuid_entry2))) - goto out_free; - cpuid->nent = nent; - r = 0; + r = -EFAULT; out_free: vfree(cpuid_entries); -out: return r; }
Clean up the error handling in kvm_dev_ioctl_get_cpuid(), which has gotten a bit crusty as the function has evolved over the years. Opportunistically hoist the static @funcs declaration to the top of the function to make it more obvious that it's a "static const". No functional change intended. Signed-off-by: Sean Christopherson <sean.j.christopherson@intel.com> --- arch/x86/kvm/cpuid.c | 19 +++++++------------ 1 file changed, 7 insertions(+), 12 deletions(-)