Commit 2ca794e5 authored by Eric W. Biederman's avatar Eric W. Biederman Committed by David S. Miller

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: default avatarEric W. Biederman <>
Acked-by: default avatarPavel Emelyanov <>
Signed-off-by: default avatarDavid S. Miller <>
parent bc8a3694
......@@ -283,6 +283,11 @@ struct ctl_path;
struct ctl_table;
struct ctl_table_header;
extern int net_sysctl_init(void);
static inline int net_sysctl_init(void) { return 0; }
extern struct ctl_table_header *register_net_sysctl_table(struct net *net,
const struct ctl_path *path, struct ctl_table *table);
extern struct ctl_table_header *register_net_sysctl_rotable(
......@@ -2524,6 +2524,12 @@ EXPORT_SYMBOL(sock_unregister);
static int __init sock_init(void)
int err;
* Initialize the network sysctl infrastructure.
err = net_sysctl_init();
if (err)
goto out;
* Initialize sock SLAB cache.
......@@ -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)
return ret;
struct ctl_table_header *register_net_sysctl_table(struct net *net,
const struct ctl_path *path, struct ctl_table *table)
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment