]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
net: Initialise net.core sysctl defaults in preinit_net().
authorKuniyuki Iwashima <kuniyu@amazon.com>
Wed, 31 Jul 2024 20:07:21 +0000 (13:07 -0700)
committerDavid S. Miller <davem@davemloft.net>
Sat, 3 Aug 2024 21:38:45 +0000 (22:38 +0100)
Commit 7c3f1875c66f ("net: move somaxconn init from sysctl code")
introduced net_defaults_ops to make sure that net.core sysctl knobs
are always initialised even if CONFIG_SYSCTL is disabled.

Such operations better fit preinit_net() added for a similar purpose
by commit 6e77a5a4af05 ("net: initialize net->notrefcnt_tracker earlier").

Let's initialise the sysctl defaults in preinit_net().

Signed-off-by: Kuniyuki Iwashima <kuniyu@amazon.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/core/net_namespace.c

index eed5a28e8ee37055ca753f8e8d70be24cbfdd5c3..11e4dd4f09ede9f02632079770a3adb63c850609 100644 (file)
@@ -309,6 +309,16 @@ struct net *get_net_ns_by_id(const struct net *net, int id)
 }
 EXPORT_SYMBOL_GPL(get_net_ns_by_id);
 
+static __net_init void preinit_net_sysctl(struct net *net)
+{
+       net->core.sysctl_somaxconn = SOMAXCONN;
+       /* Limits per socket sk_omem_alloc usage.
+        * TCP zerocopy regular usage needs 128 KB.
+        */
+       net->core.sysctl_optmem_max = 128 * 1024;
+       net->core.sysctl_txrehash = SOCK_TXREHASH_ENABLED;
+}
+
 /* init code that must occur even if setup_net() is not called. */
 static __net_init void preinit_net(struct net *net, struct user_namespace *user_ns)
 {
@@ -324,6 +334,7 @@ static __net_init void preinit_net(struct net *net, struct user_namespace *user_
        idr_init(&net->netns_ids);
        spin_lock_init(&net->nsid_lock);
        mutex_init(&net->ipv4.ra_mutex);
+       preinit_net_sysctl(net);
 }
 
 /*
@@ -384,32 +395,6 @@ out_undo:
        goto out;
 }
 
-static int __net_init net_defaults_init_net(struct net *net)
-{
-       net->core.sysctl_somaxconn = SOMAXCONN;
-       /* Limits per socket sk_omem_alloc usage.
-        * TCP zerocopy regular usage needs 128 KB.
-        */
-       net->core.sysctl_optmem_max = 128 * 1024;
-       net->core.sysctl_txrehash = SOCK_TXREHASH_ENABLED;
-
-       return 0;
-}
-
-static struct pernet_operations net_defaults_ops = {
-       .init = net_defaults_init_net,
-};
-
-static __init int net_defaults_init(void)
-{
-       if (register_pernet_subsys(&net_defaults_ops))
-               panic("Cannot initialize net default settings");
-
-       return 0;
-}
-
-core_initcall(net_defaults_init);
-
 #ifdef CONFIG_NET_NS
 static struct ucounts *inc_net_namespaces(struct user_namespace *ns)
 {