Hi all, Friendly ping: Who can take this? Thanks -- Gustavo On 2/7/19 9:10 PM, Gustavo A. R. Silva wrote: > One of the more common cases of allocation size calculations is finding > the size of a structure that has a zero-sized array at the end, along > with memory for some number of elements for that array. For example: > > struct foo { > int stuff; > void *entry[]; > }; > > instance = alloc(sizeof(struct foo) + count * sizeof(void *)); > > Instead of leaving these open-coded and prone to type mistakes, we can > now use the new struct_size() helper: > > instance = alloc(struct_size(instance, entry, count)); > > This code was detected with the help of Coccinelle. > > Signed-off-by: Gustavo A. R. Silva <gustavo@xxxxxxxxxxxxxx> > --- > drivers/net/can/usb/kvaser_usb/kvaser_usb_core.c | 3 +-- > 1 file changed, 1 insertion(+), 2 deletions(-) > > diff --git a/drivers/net/can/usb/kvaser_usb/kvaser_usb_core.c b/drivers/net/can/usb/kvaser_usb/kvaser_usb_core.c > index c89c7d4900d7..0f1d3e807d63 100644 > --- a/drivers/net/can/usb/kvaser_usb/kvaser_usb_core.c > +++ b/drivers/net/can/usb/kvaser_usb/kvaser_usb_core.c > @@ -643,8 +643,7 @@ static int kvaser_usb_init_one(struct kvaser_usb *dev, > return err; > } > > - netdev = alloc_candev(sizeof(*priv) + > - dev->max_tx_urbs * sizeof(*priv->tx_contexts), > + netdev = alloc_candev(struct_size(priv, tx_contexts, dev->max_tx_urbs), > dev->max_tx_urbs); > if (!netdev) { > dev_err(&dev->intf->dev, "Cannot alloc candev\n"); >