On Tue, Mar 08, 2022 at 11:33:18AM -0500, Paolo Bonzini wrote: > Instead of using array_size, use a function that takes care of the > multiplication. While at it, switch to kvcalloc since this allocation > should not be very large. > > Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> > --- > arch/x86/kvm/cpuid.c | 5 ++--- > 1 file changed, 2 insertions(+), 3 deletions(-) > > diff --git a/arch/x86/kvm/cpuid.c b/arch/x86/kvm/cpuid.c > index afcdd4e693e5..419eb8e14f79 100644 > --- a/arch/x86/kvm/cpuid.c > +++ b/arch/x86/kvm/cpuid.c > @@ -1248,8 +1248,7 @@ int kvm_dev_ioctl_get_cpuid(struct kvm_cpuid2 *cpuid, > if (sanity_check_entries(entries, cpuid->nent, type)) > return -EINVAL; > > - array.entries = vzalloc(array_size(sizeof(struct kvm_cpuid_entry2), > - cpuid->nent)); > + array.entries = kvcalloc(sizeof(struct kvm_cpuid_entry2), cpuid->nent, GFP_KERNEL); Even though this allocation is short-lived, should we use GFP_KERNEL_ACCOUNT instead? Otherwise: Reviewed-by: Oliver Upton <oupton@xxxxxxxxxx> Thanks! > if (!array.entries) > return -ENOMEM; > > @@ -1267,7 +1266,7 @@ int kvm_dev_ioctl_get_cpuid(struct kvm_cpuid2 *cpuid, > r = -EFAULT; > > out_free: > - vfree(array.entries); > + kvfree(array.entries); > return r; > } > > -- > 2.31.1 >