aboutsummaryrefslogtreecommitdiffstats
path: root/net/sysctl_net.c
diff options
context:
space:
mode:
authorEric W. Biederman <ebiederm@xmission.com>2012-04-19 13:20:32 +0000
committerDavid S. Miller <davem@davemloft.net>2012-04-20 21:21:16 -0400
commit2ca794e5e86c800d7f98c4ebb8bd325099c0afe8 (patch)
treef0ae38f58dec5a07ae57e31aca4943c85ffe9d65 /net/sysctl_net.c
parentbc8a36942a5c05896d373a8e98d5e6b14514b4bc (diff)
net sysctl: Initialize the network sysctls sooner to avoid problems.
If the netfilter code is modified to use register_net_sysctl_table the kernel fails to boot because the per net sysctl infrasturce is not setup soon enough. So to avoid races call net_sysctl_init from sock_init(). Signed-off-by: Eric W. Biederman <ebiederm@xmission.com> Acked-by: Pavel Emelyanov <xemul@parallels.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/sysctl_net.c')
-rw-r--r--net/sysctl_net.c3
1 files changed, 1 insertions, 2 deletions
diff --git a/net/sysctl_net.c b/net/sysctl_net.c
index 2b2986dd04ae..ce97237b653f 100644
--- a/net/sysctl_net.c
+++ b/net/sysctl_net.c
@@ -89,7 +89,7 @@ static struct pernet_operations sysctl_pernet_ops = {
};
static struct ctl_table_header *net_header;
-static __init int net_sysctl_init(void)
+__init int net_sysctl_init(void)
{
static struct ctl_table empty[1];
int ret = -ENOMEM;
@@ -109,7 +109,6 @@ static __init int net_sysctl_init(void)
out:
return ret;
}
-subsys_initcall(net_sysctl_init);
struct ctl_table_header *register_net_sysctl_table(struct net *net,
const struct ctl_path *path, struct ctl_table *table)

Privacy Policy