]> www.infradead.org Git - users/dwmw2/linux.git/commitdiff
net: Use rtnl_register_many().
authorKuniyuki Iwashima <kuniyu@amazon.com>
Mon, 14 Oct 2024 20:18:22 +0000 (13:18 -0700)
committerJakub Kicinski <kuba@kernel.org>
Wed, 16 Oct 2024 01:52:26 +0000 (18:52 -0700)
We will remove rtnl_register() in favour of rtnl_register_many().

When it succeeds, rtnl_register_many() guarantees all rtnetlink types
in the passed array are supported, and there is no chance that a part
of message types is not supported.

Let's use rtnl_register_many() instead.

Signed-off-by: Kuniyuki Iwashima <kuniyu@amazon.com>
Reviewed-by: Eric Dumazet <edumazet@google.com>
Link: https://patch.msgid.link/20241014201828.91221-6-kuniyu@amazon.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
net/core/net_namespace.c

index 0a86aff17f512bbeaa2795ab56748d8bb3b3fb71..809b48c0a5289b0f8f9f5670c84c6c914a96023e 100644 (file)
@@ -1169,6 +1169,14 @@ static void __init netns_ipv4_struct_check(void)
 }
 #endif
 
+static const struct rtnl_msg_handler net_ns_rtnl_msg_handlers[] __initconst = {
+       {.msgtype = RTM_NEWNSID, .doit = rtnl_net_newid,
+        .flags = RTNL_FLAG_DOIT_UNLOCKED},
+       {.msgtype = RTM_GETNSID, .doit = rtnl_net_getid,
+        .dumpit = rtnl_net_dumpid,
+        .flags = RTNL_FLAG_DOIT_UNLOCKED | RTNL_FLAG_DUMP_UNLOCKED},
+};
+
 void __init net_ns_init(void)
 {
        struct net_generic *ng;
@@ -1206,11 +1214,7 @@ void __init net_ns_init(void)
        if (register_pernet_subsys(&net_ns_ops))
                panic("Could not register network namespace subsystems");
 
-       rtnl_register(PF_UNSPEC, RTM_NEWNSID, rtnl_net_newid, NULL,
-                     RTNL_FLAG_DOIT_UNLOCKED);
-       rtnl_register(PF_UNSPEC, RTM_GETNSID, rtnl_net_getid, rtnl_net_dumpid,
-                     RTNL_FLAG_DOIT_UNLOCKED |
-                     RTNL_FLAG_DUMP_UNLOCKED);
+       rtnl_register_many(net_ns_rtnl_msg_handlers);
 }
 
 static void free_exit_list(struct pernet_operations *ops, struct list_head *net_exit_list)