]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
gre6: allow to update all parameters via rtnl
authorNicolas Dichtel <nicolas.dichtel@6wind.com>
Thu, 3 Dec 2015 16:21:50 +0000 (17:21 +0100)
committerLuis Henriques <luis.henriques@canonical.com>
Mon, 4 Jan 2016 17:20:42 +0000 (17:20 +0000)
commit 6a61d4dbf4f54b5683e0f1e58d873cecca7cb977 upstream.

Parameters were updated only if the kernel was unable to find the tunnel
with the new parameters, ie only if core pamareters were updated (keys,
addr, link, type).
Now it's possible to update ttl, hoplimit, flowinfo and flags.

Fixes: c12b395a4664 ("gre: Support GRE over IPv6")
Signed-off-by: Nicolas Dichtel <nicolas.dichtel@6wind.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Luis Henriques <luis.henriques@canonical.com>
net/ipv6/ip6_gre.c

index f5ea5aaf75f9172c3a6a24866d0dd7530f9a0821..1ee013644bb2a34cb4585a7a395e38e5771bcda8 100644 (file)
@@ -1553,13 +1553,11 @@ static int ip6gre_changelink(struct net_device *dev, struct nlattr *tb[],
                        return -EEXIST;
        } else {
                t = nt;
-
-               ip6gre_tunnel_unlink(ign, t);
-               ip6gre_tnl_change(t, &p, !tb[IFLA_MTU]);
-               ip6gre_tunnel_link(ign, t);
-               netdev_state_change(dev);
        }
 
+       ip6gre_tunnel_unlink(ign, t);
+       ip6gre_tnl_change(t, &p, !tb[IFLA_MTU]);
+       ip6gre_tunnel_link(ign, t);
        return 0;
 }