summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKuniyuki Iwashima <kuniyu@amazon.com>2024-07-31 13:07:19 -0700
committerDavid S. Miller <davem@davemloft.net>2024-08-03 22:38:44 +0100
commit930299491825575503ec411ff28473aaa6b8c9ca (patch)
treead58184ebe5ab8343ec55ba48bdcfd11b40cad09
parent2b5afc1d5d5a33060034f0f275bc0e9c243394bb (diff)
net: Call preinit_net() without pernet_ops_rwsem.
When initialising the root netns, we call preinit_net() under pernet_ops_rwsem. However, the operations in preinit_net() do not require pernet_ops_rwsem. Also, we don't hold it for preinit_net() when initialising non-root netns. To be consistent, let's call preinit_net() without pernet_ops_rwsem in net_ns_init(). Signed-off-by: Kuniyuki Iwashima <kuniyu@amazon.com> Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r--net/core/net_namespace.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/net/core/net_namespace.c b/net/core/net_namespace.c
index 6c9acb086852..b91c15b27fb2 100644
--- a/net/core/net_namespace.c
+++ b/net/core/net_namespace.c
@@ -1199,8 +1199,9 @@ void __init net_ns_init(void)
#ifdef CONFIG_KEYS
init_net.key_domain = &init_net_key_domain;
#endif
- down_write(&pernet_ops_rwsem);
preinit_net(&init_net);
+
+ down_write(&pernet_ops_rwsem);
if (setup_net(&init_net, &init_user_ns))
panic("Could not setup the initial network namespace");