]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
bareudp: Convert bareudp_exit_batch_rtnl() to ->exit_rtnl().
authorKuniyuki Iwashima <kuniyu@amazon.com>
Fri, 11 Apr 2025 20:52:41 +0000 (13:52 -0700)
committerJakub Kicinski <kuba@kernel.org>
Tue, 15 Apr 2025 00:08:44 +0000 (17:08 -0700)
bareudp_exit_batch_rtnl() iterates the dying netns list and performs the
same operation for each.

Let's use ->exit_rtnl().

While at it, we replace unregister_netdevice_queue() with
bareudp_dellink() for better cleanup.  It unlinks the device
from net_generic(net, bareudp_net_id)->bareudp_list, but there
is no real issue as both the dev and the list are freed later.

Signed-off-by: Kuniyuki Iwashima <kuniyu@amazon.com>
Reviewed-by: Sabrina Dubroca <sd@queasysnail.net>
Link: https://patch.msgid.link/20250411205258.63164-13-kuniyu@amazon.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/bareudp.c

index d1473c5f8eefc4d884ca61517ebd8002debcd2ca..a9dffdcac805797767d8dc4eef69d09f352fd307 100644 (file)
@@ -777,27 +777,19 @@ static __net_init int bareudp_init_net(struct net *net)
        return 0;
 }
 
-static void bareudp_destroy_tunnels(struct net *net, struct list_head *head)
+static void __net_exit bareudp_exit_rtnl_net(struct net *net,
+                                            struct list_head *dev_kill_list)
 {
        struct bareudp_net *bn = net_generic(net, bareudp_net_id);
        struct bareudp_dev *bareudp, *next;
 
        list_for_each_entry_safe(bareudp, next, &bn->bareudp_list, next)
-               unregister_netdevice_queue(bareudp->dev, head);
-}
-
-static void __net_exit bareudp_exit_batch_rtnl(struct list_head *net_list,
-                                              struct list_head *dev_kill_list)
-{
-       struct net *net;
-
-       list_for_each_entry(net, net_list, exit_list)
-               bareudp_destroy_tunnels(net, dev_kill_list);
+               bareudp_dellink(bareudp->dev, dev_kill_list);
 }
 
 static struct pernet_operations bareudp_net_ops = {
        .init = bareudp_init_net,
-       .exit_batch_rtnl = bareudp_exit_batch_rtnl,
+       .exit_rtnl = bareudp_exit_rtnl_net,
        .id   = &bareudp_net_id,
        .size = sizeof(struct bareudp_net),
 };