diff options
author | Xin Long <lucien.xin@gmail.com> | 2018-02-27 19:19:41 +0800 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2018-05-30 07:52:06 +0200 |
commit | d2e2e20bbdd3b527e413044deb0677e7aa3892eb (patch) | |
tree | 3ec86be7a56a181ba105ccd1fcfb0cc2580cf536 /net/ipv6/sit.c | |
parent | 2b0fbc2fcd2fa5d6abed5e86ba0042000721e4d0 (diff) | |
download | linux-stable-d2e2e20bbdd3b527e413044deb0677e7aa3892eb.tar.gz linux-stable-d2e2e20bbdd3b527e413044deb0677e7aa3892eb.tar.bz2 linux-stable-d2e2e20bbdd3b527e413044deb0677e7aa3892eb.zip |
sit: fix IFLA_MTU ignored on NEWLINK
[ Upstream commit 2b3957c34b6d7f03544b12ebbf875eee430745db ]
Commit 128bb975dc3c ("ip6_gre: init dev->mtu and dev->hard_header_len
correctly") fixed IFLA_MTU ignored on NEWLINK for ip6_gre. The same
mtu fix is also needed for sit.
Note that dev->hard_header_len setting for sit works fine, no need to
fix it. sit is actually ipv4 tunnel, it can't call ip6_tnl_change_mtu
to set mtu.
Reported-by: Jianlin Shi <jishi@redhat.com>
Signed-off-by: Xin Long <lucien.xin@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'net/ipv6/sit.c')
-rw-r--r-- | net/ipv6/sit.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/net/ipv6/sit.c b/net/ipv6/sit.c index b35d8905794c..ad1e7e6ce009 100644 --- a/net/ipv6/sit.c +++ b/net/ipv6/sit.c @@ -1569,6 +1569,13 @@ static int ipip6_newlink(struct net *src_net, struct net_device *dev, if (err < 0) return err; + if (tb[IFLA_MTU]) { + u32 mtu = nla_get_u32(tb[IFLA_MTU]); + + if (mtu >= IPV6_MIN_MTU && mtu <= 0xFFF8 - dev->hard_header_len) + dev->mtu = mtu; + } + #ifdef CONFIG_IPV6_SIT_6RD if (ipip6_netlink_6rd_parms(data, &ip6rd)) err = ipip6_tunnel_update_6rd(nt, &ip6rd); |