summaryrefslogtreecommitdiff
path: root/drivers/net/dummy.c
diff options
context:
space:
mode:
authorKuniyuki Iwashima <kuniyu@amazon.com>2024-11-07 16:48:16 -0800
committerJakub Kicinski <kuba@kernel.org>2024-11-11 17:26:51 -0800
commit68297dbb967f87c3c92af9d2f652270f57c547c7 (patch)
tree0c857f019c012be8a6c2e77fa70712980417dcc8 /drivers/net/dummy.c
parent6b57ff21a3109b1dba2d286ff415463e6fb1fca3 (diff)
downloadlinux-next-68297dbb967f87c3c92af9d2f652270f57c547c7.tar.gz
linux-next-68297dbb967f87c3c92af9d2f652270f57c547c7.zip
rtnetlink: Remove __rtnl_link_register()
link_ops is protected by link_ops_mutex and no longer needs RTNL, so we have no reason to have __rtnl_link_register() separately. Let's remove it and call rtnl_link_register() from ifb.ko and dummy.ko. Note that both modules' init() work on init_net only, so we need not export pernet_ops_rwsem and can use rtnl_net_lock() there. Signed-off-by: Kuniyuki Iwashima <kuniyu@amazon.com> Link: https://patch.msgid.link/20241108004823.29419-4-kuniyu@amazon.com Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Diffstat (limited to 'drivers/net/dummy.c')
-rw-r--r--drivers/net/dummy.c17
1 files changed, 6 insertions, 11 deletions
diff --git a/drivers/net/dummy.c b/drivers/net/dummy.c
index 72618b6af44e..005d79975f3b 100644
--- a/drivers/net/dummy.c
+++ b/drivers/net/dummy.c
@@ -166,27 +166,22 @@ err:
static int __init dummy_init_module(void)
{
- bool need_unregister = false;
int i, err = 0;
- down_write(&pernet_ops_rwsem);
- rtnl_lock();
- err = __rtnl_link_register(&dummy_link_ops);
+ err = rtnl_link_register(&dummy_link_ops);
if (err < 0)
- goto out;
+ return err;
+
+ rtnl_net_lock(&init_net);
for (i = 0; i < numdummies && !err; i++) {
err = dummy_init_one();
cond_resched();
}
- if (err < 0)
- need_unregister = true;
-out:
- rtnl_unlock();
- up_write(&pernet_ops_rwsem);
+ rtnl_net_unlock(&init_net);
- if (need_unregister)
+ if (err < 0)
rtnl_link_unregister(&dummy_link_ops);
return err;