From: David S. Miller Date: Thu, 29 Mar 2018 14:12:47 +0000 (-0400) Subject: Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/klassert/ipsec X-Git-Url: http://git.lede-project.org./?a=commitdiff_plain;h=020295d95e13478ecbbbe2f44398ed4b4edb28df;p=openwrt%2Fstaging%2Fblogic.git Merge branch 'master' of git://git./linux/kernel/git/klassert/ipsec Steffen Klassert says: ==================== pull request (net): ipsec 2018-03-29 1) Fix a rcu_read_lock/rcu_read_unlock imbalance in the error path of xfrm_local_error(). From Taehee Yoo. 2) Some VTI MTU fixes. From Stefano Brivio. 3) Fix a too early overwritten skb control buffer on xfrm transport mode. Please note that this pull request has a merge conflict in net/ipv4/ip_tunnel.c. The conflict is between commit f6cc9c054e77 ("ip_tunnel: Emit events for post-register MTU changes") from the net tree and commit 24fc79798b8d ("ip_tunnel: Clamp MTU to bounds on new link") from the ipsec tree. It can be solved as it is currently done in linux-next. ==================== Signed-off-by: David S. Miller --- 020295d95e13478ecbbbe2f44398ed4b4edb28df diff --cc net/ipv4/ip_tunnel.c index 7b85ffad5d74,7c76dd17b6b9..f3db1f35a79d --- a/net/ipv4/ip_tunnel.c +++ b/net/ipv4/ip_tunnel.c @@@ -1117,10 -1108,13 +1117,15 @@@ int ip_tunnel_newlink(struct net_devic eth_hw_addr_random(dev); mtu = ip_tunnel_bind_dev(dev); - if (!tb[IFLA_MTU]) { + if (tb[IFLA_MTU]) { + unsigned int max = 0xfff8 - dev->hard_header_len - nt->hlen; + + dev->mtu = clamp(dev->mtu, (unsigned int)ETH_MIN_MTU, + (unsigned int)(max - sizeof(struct iphdr))); + } else { - dev->mtu = mtu; + err = dev_set_mtu(dev, mtu); + if (err) + goto err_dev_set_mtu; } ip_tunnel_add(itn, nt);