Re: [PATCH] staging: rtl8712: consolidate kmalloc/memset 0 of array to kcalloc

From: Joe Perches
Date: Mon Jan 04 2016 - 11:19:41 EST


On Mon, 2016-01-04 at 10:05 +0100, Nicholas Mc Guire wrote:
> This is an API consolidation only. The use of kmalloc of an array
> of elements of equal size + memset to 0 of the same is equivalent to
> kcalloc.

Inequivalent code.

> Signed-off-by: Nicholas Mc Guire <hofrat@xxxxxxxxx>
> ---
> Found by coccinelle script (relaxed version of
> scripts/coccinelle/api/alloc/kzalloc-simple.cocci)
>
> Patch was compile tested with: x86_64_defconfig +
> CONFIG_STAGING=y, CONFIG_R8712U=m
>
> Patch is against linux-next (localversion-next is -next-20160104)
>
>  drivers/staging/rtl8712/rtl871x_recv.c | 4 +---
>  1 file changed, 1 insertion(+), 3 deletions(-)
>
> diff --git a/drivers/staging/rtl8712/rtl871x_recv.c b/drivers/staging/rtl8712/rtl871x_recv.c
> index 4ff5301..aa841bf 100644
> --- a/drivers/staging/rtl8712/rtl871x_recv.c
> +++ b/drivers/staging/rtl8712/rtl871x_recv.c
> @@ -72,14 +72,12 @@ sint _r8712_init_recv_priv(struct recv_priv *precvpriv,
>   _init_queue(&precvpriv->recv_pending_queue);
>   precvpriv->adapter = padapter;
>   precvpriv->free_recvframe_cnt = NR_RECVFRAME;
> - precvpriv->pallocated_frame_buf = kmalloc(NR_RECVFRAME *
> + precvpriv->pallocated_frame_buf = kcalloc(NR_RECVFRAME,
>   sizeof(union recv_frame) + RXFRAME_ALIGN_SZ,

This allocates a different size now.

>   GFP_ATOMIC);
>   if (precvpriv->pallocated_frame_buf == NULL)
>   return _FAIL;
>   kmemleak_not_leak(precvpriv->pallocated_frame_buf);
> - memset(precvpriv->pallocated_frame_buf, 0, NR_RECVFRAME *
> - sizeof(union recv_frame) + RXFRAME_ALIGN_SZ);
>   precvpriv->precv_frame_buf = precvpriv->pallocated_frame_buf +
>       RXFRAME_ALIGN_SZ -
>       ((addr_t)(precvpriv->pallocated_frame_buf) &

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/