Skip to contentSkip to conversation

Fix for loading non-namespace aware ipv4 protocols without CONFIG_NAMESPACES

PATCH New Paul Wouters 1 participant 1 message Sep 1, 2013

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

PATCH 1/1 Fix for loading non-namespace aware ipv4 protocols without CONFIG_NAMESPACES

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

commit 9e3ddb21568284fb9061a91bbd3158909b1dec45

Author: Paul Wouters <[email protected]>
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.

net/ipv4/protocol.c +2 -0
index ce84846..b5f785c 100644
@@ -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;