Re: [PATCH 2/2] fou: add Kconfig options for IPv6 support

From: David Miller
Date: Mon May 30 2016 - 01:24:55 EST

From: Arnd Bergmann <arnd@xxxxxxxx>
Date: Wed, 25 May 2016 16:50:46 +0200

> A previous patch added the fou6.ko module, but that failed to link
> in a couple of configurations:
> net/built-in.o: In function `ip6_tnl_encap_add_fou_ops':
> net/ipv6/fou6.c:88: undefined reference to `ip6_tnl_encap_add_ops'
> net/ipv6/fou6.c:94: undefined reference to `ip6_tnl_encap_add_ops'
> net/ipv6/fou6.c:97: undefined reference to `ip6_tnl_encap_del_ops'
> net/built-in.o: In function `ip6_tnl_encap_del_fou_ops':
> net/ipv6/fou6.c:106: undefined reference to `ip6_tnl_encap_del_ops'
> net/ipv6/fou6.c:107: undefined reference to `ip6_tnl_encap_del_ops'
> If CONFIG_IPV6=m, ip6_tnl_encap_add_ops/ip6_tnl_encap_del_ops
> are in a module, but fou6.c can still be built-in, and that
> obviously fails to link.
> Also, if CONFIG_IPV6=y, but CONFIG_IPV6_TUNNEL=m or
> CONFIG_IPV6_TUNNEL=n, the same problem happens for a different
> reason.
> This adds two new silent Kconfig symbols to work around both
> problems:
> - CONFIG_IPV6_FOU is now always set to 'm' if either CONFIG_NET_FOU=m
> or CONFIG_IPV6=m
> - CONFIG_IPV6_FOU_TUNNEL is set implicitly when IPV6_FOU is enabled
> and NET_FOU_IP_TUNNELS is also turned out, and it will ensure
> that CONFIG_IPV6_TUNNEL is also available.
> The options could be made user-visible as well, to give additional
> room for configuration, but it seems easier not to bother users
> with more choice here.
> Signed-off-by: Arnd Bergmann <arnd@xxxxxxxx>
> Fixes: aa3463d65e7b ("fou: Add encap ops for IPv6 tunnels")