net: Initialise net.core sysctl defaults in preinit_net().
Commit7c3f1875c6("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 commit6e77a5a4af("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>
This commit is contained in:
committed by
David S. Miller
parent
05be801259
commit
8eaf71f77c
+11
-26
@@ -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)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user