diff options
author | Ingo Molnar <mingo@kernel.org> | 2013-10-29 11:23:32 +0100 |
---|---|---|
committer | Ingo Molnar <mingo@kernel.org> | 2013-10-29 11:23:32 +0100 |
commit | aac898548d04c7bff179b79f805874b0d6f87571 (patch) | |
tree | e8de975fd5de6c95bf4329861a872dbcfe0c7ead /net/ipv6/ip6_tunnel.c | |
parent | 2f5e98802350627ad6f2e3cee4d177059fc0c2f2 (diff) | |
parent | cd65718712469ad844467250e8fad20a5838baae (diff) |
Merge branch 'perf/urgent' into perf/core
Conflicts:
tools/perf/builtin-record.c
tools/perf/builtin-top.c
tools/perf/util/hist.h
Diffstat (limited to 'net/ipv6/ip6_tunnel.c')
-rw-r--r-- | net/ipv6/ip6_tunnel.c | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/net/ipv6/ip6_tunnel.c b/net/ipv6/ip6_tunnel.c index a791552e0422..583b77e2f69b 100644 --- a/net/ipv6/ip6_tunnel.c +++ b/net/ipv6/ip6_tunnel.c @@ -1430,9 +1430,17 @@ ip6_tnl_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd) static int ip6_tnl_change_mtu(struct net_device *dev, int new_mtu) { - if (new_mtu < IPV6_MIN_MTU) { - return -EINVAL; + struct ip6_tnl *tnl = netdev_priv(dev); + + if (tnl->parms.proto == IPPROTO_IPIP) { + if (new_mtu < 68) + return -EINVAL; + } else { + if (new_mtu < IPV6_MIN_MTU) + return -EINVAL; } + if (new_mtu > 0xFFF8 - dev->hard_header_len) + return -EINVAL; dev->mtu = new_mtu; return 0; } |