net: ip6_gre: fix moving ip6gre between namespaces
authorNiko Kortstrom <niko.kortstrom@nokia.com>
Thu, 16 Jan 2020 09:43:27 +0000 (11:43 +0200)
committerDavid S. Miller <davem@davemloft.net>
Mon, 20 Jan 2020 08:59:24 +0000 (09:59 +0100)
Support for moving IPv4 GRE tunnels between namespaces was added in
commit b57708add314 ("gre: add x-netns support"). The respective change
for IPv6 tunnels, commit 22f08069e8b4 ("ip6gre: add x-netns support")
did not drop NETIF_F_NETNS_LOCAL flag so moving them from one netns to
another is still denied in IPv6 case. Drop NETIF_F_NETNS_LOCAL flag from
ip6gre tunnels to allow moving ip6gre tunnel endpoints between network
namespaces.

Signed-off-by: Niko Kortstrom <niko.kortstrom@nokia.com>
Acked-by: Nicolas Dichtel <nicolas.dichtel@6wind.com>
Acked-by: William Tu <u9012063@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/ipv6/ip6_gre.c

index ee968d9..55bfc51 100644 (file)
@@ -1466,7 +1466,6 @@ static int ip6gre_tunnel_init_common(struct net_device *dev)
                dev->mtu -= 8;
 
        if (tunnel->parms.collect_md) {
-               dev->features |= NETIF_F_NETNS_LOCAL;
                netif_keep_dst(dev);
        }
        ip6gre_tnl_init_features(dev);
@@ -1894,7 +1893,6 @@ static void ip6gre_tap_setup(struct net_device *dev)
        dev->needs_free_netdev = true;
        dev->priv_destructor = ip6gre_dev_free;
 
-       dev->features |= NETIF_F_NETNS_LOCAL;
        dev->priv_flags &= ~IFF_TX_SKB_SHARING;
        dev->priv_flags |= IFF_LIVE_ADDR_CHANGE;
        netif_keep_dst(dev);
@@ -2197,7 +2195,6 @@ static void ip6erspan_tap_setup(struct net_device *dev)
        dev->needs_free_netdev = true;
        dev->priv_destructor = ip6gre_dev_free;
 
-       dev->features |= NETIF_F_NETNS_LOCAL;
        dev->priv_flags &= ~IFF_TX_SKB_SHARING;
        dev->priv_flags |= IFF_LIVE_ADDR_CHANGE;
        netif_keep_dst(dev);