From: David S. Miller <davem@davemloft.net>
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.maquefel.me/?a=commitdiff_plain;h=020295d95e13478ecbbbe2f44398ed4b4edb28df;p=linux.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 <davem@davemloft.net>
---

020295d95e13478ecbbbe2f44398ed4b4edb28df
diff --cc net/ipv4/ip_tunnel.c
index 7b85ffad5d746,7c76dd17b6b90..f3db1f35a79dd
--- 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);