Re: [PATCH 1/3] [media] au0828-video: Use kcalloc() in au0828_init_isoc()

From: Andrey Utkin
Date: Mon Oct 24 2016 - 18:29:33 EST


On Mon, Oct 24, 2016 at 10:59:24PM +0200, SF Markus Elfring wrote:
> From: Markus Elfring <elfring@xxxxxxxxxxxxxxxxxxxxx>
> Date: Mon, 24 Oct 2016 22:08:47 +0200
>
> * Multiplications for the size determination of memory allocations
> indicated that array data structures should be processed.
> Thus use the corresponding function "kcalloc".
>
> This issue was detected by using the Coccinelle software.
>
> * Replace the specification of data types by pointer dereferences
> to make the corresponding size determination a bit safer according to
> the Linux coding style convention.
>
> Signed-off-by: Markus Elfring <elfring@xxxxxxxxxxxxxxxxxxxxx>
> ---
> drivers/media/usb/au0828/au0828-video.c | 11 +++++++----
> 1 file changed, 7 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/media/usb/au0828/au0828-video.c b/drivers/media/usb/au0828/au0828-video.c
> index 85dd9a8..85b13c1 100644
> --- a/drivers/media/usb/au0828/au0828-video.c
> +++ b/drivers/media/usb/au0828/au0828-video.c
> @@ -221,15 +221,18 @@ static int au0828_init_isoc(struct au0828_dev *dev, int max_packets,
>
> dev->isoc_ctl.isoc_copy = isoc_copy;
> dev->isoc_ctl.num_bufs = num_bufs;
> -

> - dev->isoc_ctl.urb = kzalloc(sizeof(void *)*num_bufs, GFP_KERNEL);
> + dev->isoc_ctl.urb = kcalloc(num_bufs,
> + sizeof(*dev->isoc_ctl.urb),
> + GFP_KERNEL);

What about this (for both hunks)?

- dev->isoc_ctl.urb = kzalloc(sizeof(void *)*num_bufs, GFP_KERNEL);
+ dev->isoc_ctl.urb =
+ kcalloc(num_bufs, sizeof(*dev->isoc_ctl.urb), GFP_KERNEL);