Patchwork Fix for loading non-namespace aware ipv4 protocols without CONFIG_NAMESPACES

login
register
mail settings
Submitter Paul Wouters
Date Sept. 1, 2013, 7:30 p.m.
Message ID <522395D2.7080209@redhat.com>
Download mbox | patch
Permalink /patch/271637/
State RFC
Delegated to: David Miller
Headers show

Comments

Paul Wouters - Sept. 1, 2013, 7:30 p.m.
Attached is a trivial patch to allow inet_add_protocol on kernels without CONFIG_NAMESPACES to load non-namespace aware (out of kernel) modules.
For IPv6, there is no such check. Some discussion of that can be found in the archive: http://www.spinics.net/lists/netdev/msg225184.html

I'm ambivalent on whether the check should be there (like in ipv4) or not (like in ipv6). But if it is there, it should use the proper #ifdef.

Paul

Patch

commit 9e3ddb21568284fb9061a91bbd3158909b1dec45
Author: Paul Wouters <pwouters@redhat.com>
Date:   Sun Sep 1 15:18:37 2013 -0400

    * Fix for loading non-namespace aware ipv4 protocols without
      CONFIG_NAMESPACES set. IPv6 does not have this check.

diff --git a/net/ipv4/protocol.c b/net/ipv4/protocol.c
index ce84846..b5f785c 100644
--- a/net/ipv4/protocol.c
+++ b/net/ipv4/protocol.c
@@ -37,11 +37,13 @@  const struct net_offload __rcu *inet_offloads[MAX_INET_PROTOS] __read_mostly;
 
 int inet_add_protocol(const struct net_protocol *prot, unsigned char protocol)
 {
+#ifdef CONFIG_NAMESPACES
 	if (!prot->netns_ok) {
 		pr_err("Protocol %u is not namespace aware, cannot register.\n",
 			protocol);
 		return -EINVAL;
 	}
+#endif
 
 	return !cmpxchg((const struct net_protocol **)&inet_protos[protocol],
 			NULL, prot) ? 0 : -1;