Skip to content

Commit

Permalink
can: af_can: can_pernet_exit(): no need to iterate over and cleanup r…
Browse files Browse the repository at this point in the history
…egistered 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>
  • Loading branch information
Marc Kleine-Budde committed Sep 4, 2019
1 parent e2586a5 commit 3f15035
Showing 1 changed file with 0 additions and 15 deletions.
15 changes: 0 additions & 15 deletions net/can/af_can.c
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand Down

0 comments on commit 3f15035

Please sign in to comment.