summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDaniel Lezcano <dlezcano@fr.ibm.com>2007-09-13 09:16:29 +0200
committerDavid S. Miller <davem@sunset.davemloft.net>2007-10-10 16:49:21 -0700
commit4fabcd7118162e36eea5c53e8895ecc13762bef3 (patch)
tree29a1b009e9bbd52bcce413f9b06c892b09783ccd
parente08b09983fe9cf379faf1aefdf9164268d4610e7 (diff)
downloadlinux-4fabcd7118162e36eea5c53e8895ecc13762bef3.tar.bz2
[NETNS]: Fix allnoconfig compilation error.
When CONFIG_NET=no, init_net is unresolved because net_namespace.c is not compiled and the include pull init_net definition. This problem was very similar with the ipc namespace where the kernel can be compiled with SYSV ipc out. This patch fix that defining a macro which simply remove init_net initialization from nsproxy namespace aggregator. Compiled and booted on qemu-i386 with CONFIG_NET=no and CONFIG_NET=yes. Signed-off-by: Daniel Lezcano <dlezcano@fr.ibm.com> Acked-by: "Eric W. Biederman" <ebiederm@xmission.com> Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r--include/linux/init_task.h2
-rw-r--r--include/net/net_namespace.h7
2 files changed, 8 insertions, 1 deletions
diff --git a/include/linux/init_task.h b/include/linux/init_task.h
index e2c1ffcff62c..513bc3e489f0 100644
--- a/include/linux/init_task.h
+++ b/include/linux/init_task.h
@@ -79,7 +79,7 @@ extern struct nsproxy init_nsproxy;
.nslock = __SPIN_LOCK_UNLOCKED(nsproxy.nslock), \
.uts_ns = &init_uts_ns, \
.mnt_ns = NULL, \
- .net_ns = &init_net, \
+ INIT_NET_NS(net_ns) \
INIT_IPC_NS(ipc_ns) \
.user_ns = &init_user_ns, \
}
diff --git a/include/net/net_namespace.h b/include/net/net_namespace.h
index fac42db7f6d0..3081b6ed35fe 100644
--- a/include/net/net_namespace.h
+++ b/include/net/net_namespace.h
@@ -28,7 +28,14 @@ struct net {
struct hlist_head *dev_index_head;
};
+#ifdef CONFIG_NET
+/* Init's network namespace */
extern struct net init_net;
+#define INIT_NET_NS(net_ns) .net_ns = &init_net,
+#else
+#define INIT_NET_NS(net_ns)
+#endif
+
extern struct list_head net_namespace_list;
extern void __put_net(struct net *net);