summaryrefslogtreecommitdiffstats
path: root/net/can/af_can.c
diff options
context:
space:
mode:
authorMarc Kleine-Budde <mkl@pengutronix.de>2018-10-08 09:02:37 +0200
committerMarc Kleine-Budde <mkl@pengutronix.de>2019-09-04 13:29:14 +0200
commit3f15035606934a499975e4a5879a9499f072c179 (patch)
treee75641d489371a55ffe3fc592e0d9672ab52275e /net/can/af_can.c
parente2586a5796d6c6a812b401c7f1da2519ce3cf821 (diff)
downloadlinux-3f15035606934a499975e4a5879a9499f072c179.tar.bz2
can: af_can: can_pernet_exit(): no need to iterate over and cleanup registered CAN devices
The networking core takes care and unregisters every network device in a namespace before calling the can_pernet_exit() hook. This patch removes the unneeded cleanup. Acked-by: Oliver Hartkopp <socketcan@hartkopp.net> Suggested-by: Kirill Tkhai <ktkhai@virtuozzo.com> Signed-off-by: Oleksij Rempel <o.rempel@pengutronix.de> Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
Diffstat (limited to 'net/can/af_can.c')
-rw-r--r--net/can/af_can.c15
1 files changed, 0 insertions, 15 deletions
diff --git a/net/can/af_can.c b/net/can/af_can.c
index 28ea80274121..d65b19003a24 100644
--- a/net/can/af_can.c
+++ b/net/can/af_can.c
@@ -866,27 +866,12 @@ static int can_pernet_init(struct net *net)
static void can_pernet_exit(struct net *net)
{
- struct net_device *dev;
-
if (IS_ENABLED(CONFIG_PROC_FS)) {
can_remove_proc(net);
if (stats_timer)
del_timer_sync(&net->can.stattimer);
}
- /* remove created dev_rcv_lists from still registered CAN devices */
- rcu_read_lock();
- for_each_netdev_rcu(net, dev) {
- if (dev->type == ARPHRD_CAN && dev->ml_priv) {
- struct can_dev_rcv_lists *dev_rcv_lists = dev->ml_priv;
-
- BUG_ON(dev_rcv_lists->entries);
- kfree(dev_rcv_lists);
- dev->ml_priv = NULL;
- }
- }
- rcu_read_unlock();
-
kfree(net->can.rx_alldev_list);
kfree(net->can.pkg_stats);
kfree(net->can.rcv_lists_stats);