sit: fix tunnel update via netlink
authorNicolas Dichtel <nicolas.dichtel@6wind.com>
Wed, 3 Jul 2013 15:00:34 +0000 (17:00 +0200)
committerDavid S. Miller <davem@davemloft.net>
Thu, 4 Jul 2013 21:55:47 +0000 (14:55 -0700)
The device can stand in another netns, hence we need to do the lookup in netns
tunnel->net.

Signed-off-by: Nicolas Dichtel <nicolas.dichtel@6wind.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/ipv6/sit.c

index 85ff37b..a3437a4 100644 (file)
@@ -1426,9 +1426,9 @@ static int ipip6_newlink(struct net *src_net, struct net_device *dev,
 static int ipip6_changelink(struct net_device *dev, struct nlattr *tb[],
                          struct nlattr *data[])
 {
-       struct ip_tunnel *t;
+       struct ip_tunnel *t = netdev_priv(dev);
        struct ip_tunnel_parm p;
-       struct net *net = dev_net(dev);
+       struct net *net = t->net;
        struct sit_net *sitn = net_generic(net, sit_net_id);
 #ifdef CONFIG_IPV6_SIT_6RD
        struct ip_tunnel_6rd ip6rd;