Fix for loading non-namespace aware ipv4 protocols without CONFIG_NAMESPACES
Subsystems (2)
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
@@ -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 ;