aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/can/usb/kvaser_usb
diff options
context:
space:
mode:
authorGustavo A. R. Silva <gustavo@embeddedor.com>2019-02-07 21:10:35 -0600
committerMarc Kleine-Budde <mkl@pengutronix.de>2019-07-24 10:31:53 +0200
commitd9e5d174ad8b23ef3e9a2b76cce98548595f6e2b (patch)
tree7589f46c947c946e4f307403421b9a30462f5537 /drivers/net/can/usb/kvaser_usb
parentcan: sja1000: f81601: add Fintek F81601 support (diff)
downloadlinux-dev-d9e5d174ad8b23ef3e9a2b76cce98548595f6e2b.tar.xz
linux-dev-d9e5d174ad8b23ef3e9a2b76cce98548595f6e2b.zip
can: kvaser_usb: Use struct_size() in alloc_candev()
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@embeddedor.com> Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
Diffstat (limited to 'drivers/net/can/usb/kvaser_usb')
-rw-r--r--drivers/net/can/usb/kvaser_usb/kvaser_usb_core.c3
1 files changed, 1 insertions, 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");