Re: [PATCH] KVM: use kvcalloc for array allocations

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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
> 



[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux