net: fix sysctl_fb_tunnels_only_for_init_net link error
authorArnd Bergmann <arnd@arndb.de>
Tue, 13 Mar 2018 11:44:53 +0000 (12:44 +0100)
committerDavid S. Miller <davem@davemloft.net>
Tue, 13 Mar 2018 18:15:21 +0000 (14:15 -0400)
The new variable is only available when CONFIG_SYSCTL is enabled,
otherwise we get a link error:

net/ipv4/ip_tunnel.o: In function `ip_tunnel_init_net':
ip_tunnel.c:(.text+0x278b): undefined reference to `sysctl_fb_tunnels_only_for_init_net'
net/ipv6/sit.o: In function `sit_init_net':
sit.c:(.init.text+0x4c): undefined reference to `sysctl_fb_tunnels_only_for_init_net'
net/ipv6/ip6_tunnel.o: In function `ip6_tnl_init_net':
ip6_tunnel.c:(.init.text+0x39): undefined reference to `sysctl_fb_tunnels_only_for_init_net'

This adds an extra condition, keeping the traditional behavior when
CONFIG_SYSCTL is disabled.

Fixes: 79134e6ce2c9 ("net: do not create fallback tunnels for non-default namespaces")
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/linux/netdevice.h

index 5fbb9f1..913b1cc 100644 (file)
@@ -589,7 +589,9 @@ extern int sysctl_fb_tunnels_only_for_init_net;
 
 static inline bool net_has_fallback_tunnels(const struct net *net)
 {
-       return net == &init_net || !sysctl_fb_tunnels_only_for_init_net;
+       return net == &init_net ||
+              !IS_ENABLED(CONFIG_SYSCTL) ||
+              !sysctl_fb_tunnels_only_for_init_net;
 }
 
 static inline int netdev_queue_numa_node_read(const struct netdev_queue *q)