Re: [PATCH] ip_tunnel: enclose a code block in macro IS_ENABLED(CONFIG_IPV6)

From: Alexander Duyck
Date: Sun May 22 2016 - 21:06:44 EST


On Sun, May 22, 2016 at 3:53 PM, Haishuang Yan
<yanhaishuang@xxxxxxxxxxxxxxxxxxxx> wrote:
> For ipv6 case, enclose the code block in macro IS_ENABLED(CONFIG_IPV6).
>
> Signed-off-by: Haishuang Yan <yanhaishuang@xxxxxxxxxxxxxxxxxxxx>
> ---
> net/ipv4/ip_tunnel.c | 5 ++++-
> 1 file changed, 4 insertions(+), 1 deletion(-)
>
> diff --git a/net/ipv4/ip_tunnel.c b/net/ipv4/ip_tunnel.c
> index a69ed94..5f3c8de 100644
> --- a/net/ipv4/ip_tunnel.c
> +++ b/net/ipv4/ip_tunnel.c
> @@ -665,10 +665,13 @@ void ip_tunnel_xmit(struct sk_buff *skb, struct net_device *dev,
> if (skb->protocol == htons(ETH_P_IP)) {
> tos = inner_iph->tos;
> connected = false;
> - } else if (skb->protocol == htons(ETH_P_IPV6)) {
> + }
> +#if IS_ENABLED(CONFIG_IPV6)
> + else if (skb->protocol == htons(ETH_P_IPV6)) {
> tos = ipv6_get_dsfield((const struct ipv6hdr *)inner_iph);
> connected = false;
> }
> +#endif
> }
>
> init_tunnel_flow(&fl4, protocol, dst, tnl_params->saddr,
>

You could just place the "#if IS_ENABLED" block before the "} else if
(..) {" piece and the "#endif" before the closing brace and this
becomes much easier to look at.

Also is there any specific reason for needing to wrap this code? It
isn't clear from your patch description, and from what I can tell the
code that you are wrapping should be defined in all cases since it is
defined in header files anyway.

- Alex