Revert "ip6_vti: adjust vti mtu according to mtu of lower device"
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 6 Apr 2018 07:45:56 +0000 (09:45 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sun, 8 Apr 2018 12:26:34 +0000 (14:26 +0200)
This reverts commit e6cfc525163ea3375113a9dcc234c2cdd8dbf643 which is
commit 53c81e95df1793933f87748d36070a721f6cb287 upstream.

Ben writes that there are a number of follow-on patches needed to fix
this up, but they get complex to backport, and some custom fixes are
needed, so let's just revert this and wait for a "real" set of patches
to resolve this to be submitted if it is really needed.

Reported-by: Ben Hutchings <ben.hutchings@codethink.co.uk>
Cc: Petr Vorel <pvorel@suse.cz>
Cc: Alexey Kodanev <alexey.kodanev@oracle.com>
Cc: David S. Miller <davem@davemloft.net>
Cc: Stefano Brivio <sbrivio@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
net/ipv6/ip6_vti.c

index 413f01be0c9b9d2a577fd5b815b0e2e76f561ea0..bcdc2d557de13914b5046dece683614eb5f8f8c8 100644 (file)
@@ -626,7 +626,6 @@ static void vti6_link_config(struct ip6_tnl *t)
 {
        struct net_device *dev = t->dev;
        struct __ip6_tnl_parm *p = &t->parms;
-       struct net_device *tdev = NULL;
 
        memcpy(dev->dev_addr, &p->laddr, sizeof(struct in6_addr));
        memcpy(dev->broadcast, &p->raddr, sizeof(struct in6_addr));
@@ -639,25 +638,6 @@ static void vti6_link_config(struct ip6_tnl *t)
                dev->flags |= IFF_POINTOPOINT;
        else
                dev->flags &= ~IFF_POINTOPOINT;
-
-       if (p->flags & IP6_TNL_F_CAP_XMIT) {
-               int strict = (ipv6_addr_type(&p->raddr) &
-                             (IPV6_ADDR_MULTICAST | IPV6_ADDR_LINKLOCAL));
-               struct rt6_info *rt = rt6_lookup(t->net,
-                                                &p->raddr, &p->laddr,
-                                                p->link, strict);
-
-               if (rt)
-                       tdev = rt->dst.dev;
-               ip6_rt_put(rt);
-       }
-
-       if (!tdev && p->link)
-               tdev = __dev_get_by_index(t->net, p->link);
-
-       if (tdev)
-               dev->mtu = max_t(int, tdev->mtu - dev->hard_header_len,
-                                IPV6_MIN_MTU);
 }
 
 /**