From patchwork Tue Oct 6 19:22:12 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Arnd Bergmann X-Patchwork-Id: 7339141 Return-Path: X-Original-To: patchwork-linux-arm@patchwork.kernel.org Delivered-To: patchwork-parsemail@patchwork2.web.kernel.org Received: from mail.kernel.org (mail.kernel.org [198.145.29.136]) by patchwork2.web.kernel.org (Postfix) with ESMTP id 7003EBEEA4 for ; Tue, 6 Oct 2015 19:25:37 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id 7941E20678 for ; Tue, 6 Oct 2015 19:25:36 +0000 (UTC) Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.9]) (using TLSv1.2 with cipher AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 88FEB2066A for ; Tue, 6 Oct 2015 19:25:35 +0000 (UTC) Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.80.1 #2 (Red Hat Linux)) id 1ZjXpP-0006gn-U5; Tue, 06 Oct 2015 19:23:11 +0000 Received: from mout.kundenserver.de ([212.227.126.130]) by bombadil.infradead.org with esmtps (Exim 4.80.1 #2 (Red Hat Linux)) id 1ZjXpM-0006au-VQ for linux-arm-kernel@lists.infradead.org; Tue, 06 Oct 2015 19:23:09 +0000 Received: from wuerfel.localnet ([149.172.15.242]) by mrelayeu.kundenserver.de (mreue001) with ESMTPSA (Nemesis) id 0M003o-1abdP918e4-00uEVT; Tue, 06 Oct 2015 21:22:15 +0200 From: Arnd Bergmann To: netdev@vger.kernel.org Subject: [PATCH] bridge/netfilter: avoid unused label warning Date: Tue, 06 Oct 2015 21:22:12 +0200 Message-ID: <7985748.1v9Gzszd4T@wuerfel> User-Agent: KMail/4.11.5 (Linux/3.16.0-10-generic; KDE/4.11.5; x86_64; ; ) MIME-Version: 1.0 X-Provags-ID: V03:K0:xcKxohIV1b/BBiVjOrUi9Tl5XA+VDw0wRIsSm4/qz/MsLcjVct4 Uu22+8yiYsWxBQLHprupPtfG0IOWc0yVDWsDzrV2rVtuwLQF/XPHwBxQ8db6vA+3e97cRR1 LjC3p8oXL6usY7dwHAuFJ2y/yYiT2fq9Z/ykQRByvmu+0eEfU66y2v5Y67dDD1FbBWKfzm+ l8KSPK7xbiYAFaJ9wtm9Q== X-UI-Out-Filterresults: notjunk:1; V01:K0:nlaCgZoUpC0=:FHP8yJS0GjFBsTe+TDXbmm viezJUjfFQBBsbz1zOHuo8ctjhXPGX535hT9t2HMcYZUeZYVITDcMT7hPgrq2j0x6KGQS+f+i eFESIYq0O3x+gPhqoQnf1oXrpX9/MyhOCDP5PMsG5NeGWrVnP4BSeC4I4L1wVIkmYfShO6kZv WI7ZTZ+iY7QiBOOTD5l1faSk7AGEFBpPrI/LSkfwXpDFfD454AoVrdDazxkZmCh8u7t7CMpi6 z9D/aVEzOfv0y2oxsJ6UjU7+M+sO8m7qCeWjlPv9C8EvnoAepAx93oS52N63OV8OtfUIxP7y7 XTyU30wNhXuJra8g3KtT8GdZqHhov4LdAjpBBlY1UKnto+1DpNFkxsQj78YaKHkVBL9vvwPXY Vd5wA59vhH1OEvbWCbx627hI6Odteg8K36PkhiILOPJwvZOkSqjUJCqXD4/7vGPMw50JDZpR6 JQTzdMTyg+C4FQCgBq1TR3HRw5yAwOtT/MeYMnP5qGzxrBO7NeTSPmF5wmFw5F0qzwU81+/53 3oQdjSmQ2UWMF9YvAaCnSMKbzN7ciCpbZ9CcKv9LIXx/BJGS+jPlDIJ3jSEEmIS2sRf0FGs7P PUFieGK7T8/HB5Q4wPBBgsEafC6nuRAsOvwxuTi0qh51UBlYS2udU7K9bv3K2bNMrNl8EyB/X 4d9KwbnoaI1MKzlgf7aAs+fL20bhlgnOBtQO6hE8kAxEGJMXW0zWVT7R3F4p8pcPOdW+Z6iY8 8No9LV0h48VA2YfG X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20151006_122309_210889_504D9D56 X-CRM114-Status: GOOD ( 18.38 ) X-Spam-Score: -2.6 (--) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Florian Westphal , linux-kernel@vger.kernel.org, Pablo Neira Ayuso , David Miller , linux-arm-kernel@lists.infradead.org, "Eric W. Biederman" Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00, RCVD_IN_DNSWL_MED, T_RP_MATCHES_RCVD, UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on mail.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP With the ARM mini2440_defconfig, the bridge netfilter code gets built with both CONFIG_NF_DEFRAG_IPV4 and CONFIG_NF_DEFRAG_IPV6 disabled, which leads to a harmless gcc warning: net/bridge/br_netfilter_hooks.c: In function 'br_nf_dev_queue_xmit': net/bridge/br_netfilter_hooks.c:792:2: warning: label 'drop' defined but not used [-Wunused-label] This gets rid of the warning by cleaning up the code to avoid the respective #ifdefs causing this problem, and replacing them with if(IS_ENABLED()) checks. I have verified that the resulting object code is unchanged, and an additional advantage is that we now get compile coverage of the unused functions in more configurations. Signed-off-by: Arnd Bergmann Fixes: dd302b59bde0 ("netfilter: bridge: don't leak skb in error paths") Reviewed-by: Nikolay Aleksandrov diff --git a/net/bridge/br_netfilter_hooks.c b/net/bridge/br_netfilter_hooks.c index 370aa4d4cf4d..5c679ac5cdef 100644 --- a/net/bridge/br_netfilter_hooks.c +++ b/net/bridge/br_netfilter_hooks.c @@ -111,7 +111,6 @@ static inline __be16 pppoe_proto(const struct sk_buff *skb) /* largest possible L2 header, see br_nf_dev_queue_xmit() */ #define NF_BRIDGE_MAX_MAC_HEADER_LENGTH (PPPOE_SES_HLEN + ETH_HLEN) -#if IS_ENABLED(CONFIG_NF_DEFRAG_IPV4) || IS_ENABLED(CONFIG_NF_DEFRAG_IPV6) struct brnf_frag_data { char mac[NF_BRIDGE_MAX_MAC_HEADER_LENGTH]; u8 encap_size; @@ -121,7 +120,6 @@ struct brnf_frag_data { }; static DEFINE_PER_CPU(struct brnf_frag_data, brnf_frag_data_storage); -#endif static void nf_bridge_info_free(struct sk_buff *skb) { @@ -666,7 +664,6 @@ static unsigned int br_nf_forward_arp(void *priv, return NF_STOLEN; } -#if IS_ENABLED(CONFIG_NF_DEFRAG_IPV4) || IS_ENABLED(CONFIG_NF_DEFRAG_IPV6) static int br_nf_push_frag_xmit(struct net *net, struct sock *sk, struct sk_buff *skb) { struct brnf_frag_data *data; @@ -691,9 +688,7 @@ static int br_nf_push_frag_xmit(struct net *net, struct sock *sk, struct sk_buff nf_bridge_info_free(skb); return br_dev_queue_push_xmit(net, sk, skb); } -#endif -#if IS_ENABLED(CONFIG_NF_DEFRAG_IPV4) static int br_nf_ip_fragment(struct net *net, struct sock *sk, struct sk_buff *skb, int (*output)(struct net *, struct sock *, struct sk_buff *)) @@ -711,7 +706,6 @@ br_nf_ip_fragment(struct net *net, struct sock *sk, struct sk_buff *skb, return ip_do_fragment(net, sk, skb, output); } -#endif static unsigned int nf_bridge_mtu_reduction(const struct sk_buff *skb) { @@ -734,11 +728,11 @@ static int br_nf_dev_queue_xmit(struct net *net, struct sock *sk, struct sk_buff nf_bridge = nf_bridge_info_get(skb); -#if IS_ENABLED(CONFIG_NF_DEFRAG_IPV4) /* This is wrong! We should preserve the original fragment * boundaries by preserving frag_list rather than refragmenting. */ - if (skb->protocol == htons(ETH_P_IP)) { + if (IS_ENABLED(CONFIG_NF_DEFRAG_IPV4) && + skb->protocol == htons(ETH_P_IP)) { struct brnf_frag_data *data; if (br_validate_ipv4(net, skb)) @@ -760,9 +754,8 @@ static int br_nf_dev_queue_xmit(struct net *net, struct sock *sk, struct sk_buff return br_nf_ip_fragment(net, sk, skb, br_nf_push_frag_xmit); } -#endif -#if IS_ENABLED(CONFIG_NF_DEFRAG_IPV6) - if (skb->protocol == htons(ETH_P_IPV6)) { + if (IS_ENABLED(CONFIG_NF_DEFRAG_IPV6) && + skb->protocol == htons(ETH_P_IPV6)) { const struct nf_ipv6_ops *v6ops = nf_get_ipv6_ops(); struct brnf_frag_data *data; @@ -786,7 +779,6 @@ static int br_nf_dev_queue_xmit(struct net *net, struct sock *sk, struct sk_buff kfree_skb(skb); return -EMSGSIZE; } -#endif nf_bridge_info_free(skb); return br_dev_queue_push_xmit(net, sk, skb); drop: