From patchwork Wed May 25 14:50:46 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Arnd Bergmann X-Patchwork-Id: 626201 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3rFFcd1P9Xz9s5Q for ; Thu, 26 May 2016 00:52:33 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932077AbcEYOwI (ORCPT ); Wed, 25 May 2016 10:52:08 -0400 Received: from mout.kundenserver.de ([212.227.126.134]:63186 "EHLO mout.kundenserver.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751355AbcEYOwF (ORCPT ); Wed, 25 May 2016 10:52:05 -0400 Received: from wuerfel.lan. ([78.42.132.4]) by mrelayeu.kundenserver.de (mreue005) with ESMTPA (Nemesis) id 0MWvfk-1b06Tx37pM-00W1k3; Wed, 25 May 2016 16:51:41 +0200 From: Arnd Bergmann To: Tom Herbert , "David S. Miller" Cc: Arnd Bergmann , Alexey Kuznetsov , James Morris , Hideaki YOSHIFUJI , Patrick McHardy , netdev@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH 2/2] fou: add Kconfig options for IPv6 support Date: Wed, 25 May 2016 16:50:46 +0200 Message-Id: <1464187873-219087-2-git-send-email-arnd@arndb.de> X-Mailer: git-send-email 2.7.0 In-Reply-To: <1464187873-219087-1-git-send-email-arnd@arndb.de> References: <1464187873-219087-1-git-send-email-arnd@arndb.de> X-Provags-ID: V03:K0:tOOx64+mswf5+yggvgDHfeZyBYWHZrzVkFFu4fie6k1il5S4cZE AdgCS6bH9HZ9ti5NO9L6g6VEPKJAqa6mSX6ta2t5uZw0jHDQD66mUgPt7+OMU2KB8YXEqGB wnJgJ0V8Bjqwlu3D+tikOGjAkLUG1z0TTLxN5yu+6lTK3jpMl+5jNFNKqkf6JjcuSsPIDmd 0vEOM0BH+itrA7A+vjZEA== X-UI-Out-Filterresults: notjunk:1; V01:K0:A+L9i8/RaQE=:xECdcC+F/w93NuBpiK4/1j AYbACVgsdeYDCVA0C1zc6tRrdWjZFcDQcO/r/1gDNE03HcIpjn3hqzDdkTuPawd81zJXHdbrI SxW01qB5j6LnXz1JehHqJRA1IN7vOziWGtL1GK9z7UjKhU+M6VyvYvz+xSalh3SZM974sMiXf KagxV557vMuHvCIuC+CvgmLlQi/U0J4taO45om5RjF8qfO8Z4Z/3qs8kZiSXDUi3WfhYBoJoi SXu0u2OltSc/Ogd+wUHuWjMMKBdgBYSlAqxlhqtIumWLQxiDemjBuiEbazy490k0pBxySxveD fLmjTUxuQo3gvjl6GKSlYuCw9ybJrTaGW//l5YnItqntZbVhtr5cgVhtjPbJCVDB7as/zYYkC zoBnYWqiIPULdjPi0bjGg0AoILbALTKB/mcMQbC2YaR7lZWSVao28wc6ILC6P7XwRdBkvopk5 +dDQsM1U8aelJcAkXhTGjjvJ5/lstF+jCCn3GZougkOQTu82hGuPRhgg2CbfhacfXAaVBTET+ E5gEmnEyhN3lXA0IqlXw221HBQWdNuKHySmP/pjgu5fvtD7yRVApCOgZ3D9qDpSTRSTMx9rOz khGzksdLBWMOLADkmD/VVV+13AfMPt/QwNoP2I6JrSJaaxUD+83jNzaeWKkR1UJ7VVTg/SPd7 9Hz9W01jkJEJmw5rYhJAdJQ+V0eCPB1A8RVbuzZriQukYskRqv687baqZZinydMCVVEk= Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org 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 Fixes: aa3463d65e7b ("fou: Add encap ops for IPv6 tunnels") --- net/ipv6/Kconfig | 9 +++++++++ net/ipv6/Makefile | 2 +- net/ipv6/fou6.c | 2 +- 3 files changed, 11 insertions(+), 2 deletions(-) diff --git a/net/ipv6/Kconfig b/net/ipv6/Kconfig index 3f8411328de5..994608263260 100644 --- a/net/ipv6/Kconfig +++ b/net/ipv6/Kconfig @@ -232,6 +232,15 @@ config IPV6_GRE Saying M here will produce a module called ip6_gre. If unsure, say N. +config IPV6_FOU + tristate + default NET_FOU && IPV6 + +config IPV6_FOU_TUNNEL + tristate + default NET_FOU_IP_TUNNELS && IPV6_FOU + select INET6_TUNNEL + config IPV6_MULTIPLE_TABLES bool "IPv6: Multiple Routing Tables" select FIB_RULES diff --git a/net/ipv6/Makefile b/net/ipv6/Makefile index 7ec3129c9ace..d42ca3d1197f 100644 --- a/net/ipv6/Makefile +++ b/net/ipv6/Makefile @@ -42,7 +42,7 @@ obj-$(CONFIG_IPV6_VTI) += ip6_vti.o obj-$(CONFIG_IPV6_SIT) += sit.o obj-$(CONFIG_IPV6_TUNNEL) += ip6_tunnel.o obj-$(CONFIG_IPV6_GRE) += ip6_gre.o -obj-$(CONFIG_NET_FOU) += fou6.o +obj-$(CONFIG_NET_FOU_IPV6_TUNNELS) += fou6.o obj-y += addrconf_core.o exthdrs_core.o ip6_checksum.o ip6_icmp.o obj-$(CONFIG_INET) += output_core.o protocol.o $(ipv6-offload) diff --git a/net/ipv6/fou6.c b/net/ipv6/fou6.c index c972d0b52579..9ea249b9451e 100644 --- a/net/ipv6/fou6.c +++ b/net/ipv6/fou6.c @@ -69,7 +69,7 @@ int gue6_build_header(struct sk_buff *skb, struct ip_tunnel_encap *e, } EXPORT_SYMBOL(gue6_build_header); -#ifdef CONFIG_NET_FOU_IP_TUNNELS +#if IS_ENABLED(CONFIG_IPV6_FOU_TUNNEL) static const struct ip6_tnl_encap_ops fou_ip6tun_ops = { .encap_hlen = fou_encap_hlen,