diff options
author | Marc Kleine-Budde <mkl@pengutronix.de> | 2018-10-08 09:02:39 +0200 |
---|---|---|
committer | Marc Kleine-Budde <mkl@pengutronix.de> | 2019-09-04 13:29:15 +0200 |
commit | 8df9ffb888c021fa68f9075d545f2ec5eca37200 (patch) | |
tree | c783503e0599f77685c82925a36bfa3f0a2a9794 /drivers/net/can/dev.c | |
parent | can: introduce CAN midlayer private and allocate it automatically (diff) | |
download | linux-8df9ffb888c021fa68f9075d545f2ec5eca37200.tar.xz linux-8df9ffb888c021fa68f9075d545f2ec5eca37200.zip |
can: make use of preallocated can_ml_priv for per device struct can_dev_rcv_lists
This patch removes the old method of allocating the per device protocol
specific memory via a netdevice_notifier. This had the drawback, that
the allocation can fail, leading to a lot of null pointer checks in the
code. This also makes the live cycle management of this memory quite
complicated.
This patch switches from the allocating the struct can_dev_rcv_lists in
a NETDEV_REGISTER call to using the dev->ml_priv, which is allocated by
the driver since the previous patch.
Signed-off-by: Oleksij Rempel <o.rempel@pengutronix.de>
Acked-by: Oliver Hartkopp <socketcan@hartkopp.net>
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
Diffstat (limited to 'drivers/net/can/dev.c')
-rw-r--r-- | drivers/net/can/dev.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/net/can/dev.c b/drivers/net/can/dev.c index 9e688dc29521..b429550c4cc2 100644 --- a/drivers/net/can/dev.c +++ b/drivers/net/can/dev.c @@ -746,6 +746,8 @@ struct net_device *alloc_candev_mqs(int sizeof_priv, unsigned int echo_skb_max, priv = netdev_priv(dev); priv->dev = dev; + dev->ml_priv = (void *)priv + ALIGN(sizeof_priv, NETDEV_ALIGN); + if (echo_skb_max) { priv->echo_skb_max = echo_skb_max; priv->echo_skb = (void *)priv + |