Re: [PATCH 4/4] staging: rtl8192u: r8192U_core: use kmalloc_array instead of kmalloc

From: Geliang Tang
Date: Mon Feb 22 2016 - 19:56:03 EST


On Sun, Feb 07, 2016 at 07:55:09PM -0800, Greg Kroah-Hartman wrote:
> On Sun, Nov 08, 2015 at 10:17:54PM +0800, Geliang Tang wrote:
> > Use kmalloc_array instead of kmalloc to allocate memory for an array.
> >
> > Signed-off-by: Geliang Tang <geliangtang@xxxxxxx>
> > ---
> > drivers/staging/rtl8192u/r8192U_core.c | 4 ++--
> > 1 file changed, 2 insertions(+), 2 deletions(-)
> >
> > diff --git a/drivers/staging/rtl8192u/r8192U_core.c b/drivers/staging/rtl8192u/r8192U_core.c
> > index e06864f..07a1447 100644
> > --- a/drivers/staging/rtl8192u/r8192U_core.c
> > +++ b/drivers/staging/rtl8192u/r8192U_core.c
> > @@ -1725,8 +1725,8 @@ static short rtl8192_usb_initendpoints(struct net_device *dev)
> > {
> > struct r8192_priv *priv = ieee80211_priv(dev);
> >
> > - priv->rx_urb = kmalloc(sizeof(struct urb *) * (MAX_RX_URB + 1),
> > - GFP_KERNEL);
> > + priv->rx_urb = kmalloc_array(MAX_RX_URB + 1, sizeof(struct urb *),
> > + GFP_KERNEL);
>
> I don't see the benefit here with this change, do you?

It is highly likely that there is a checkpatch warning "kmalloc with multiplies"
here. But the checkpatch script does not report this warning, I think it is
because MAX_RX_URB is a macro, and there is a '+1' after it. Therefore although
it passes,I think it still should be deemed as a warning. So to use kmalloc_array
here seems better.

Thanks.

- Geliang