Subject: linux-next: manual merge of the ipsec tree with the net tree

From: Stephen Rothwell <[email-masked]>
Date: Thu, 4 Mar 2021 09:18:04 +1100

Hi all,

Today's linux-next merge of the ipsec tree got conflicts in:

  net/ipv4/ip_vti.c
  net/ipv6/ip6_vti.c

between commit:

  4372339efc06 ("net: always use icmp{,v6}_ndo_send from ndo_start_xmit")

from the net tree and commits:

  c7c1abfd6d42 ("vti: fix ipv4 pmtu check to honor ip header df")
  4c38255892c0 ("vti6: fix ipv4 pmtu check to honor ip header df")

from the ipsec tree.

I fixed it up (see below) and can carry the fix as necessary. This
is now fixed as far as linux-next is concerned, but any non trivial
conflicts should be mentioned to your upstream maintainer when your tree
is submitted for merging.  You may also want to consider cooperating
with the maintainer of the conflicting tree to minimise any particularly
complex conflicts.

-- 
Cheers,
Stephen Rothwell

diff --cc net/ipv4/ip_vti.c
index eb207089ece0,613741384490..000000000000
--- a/net/ipv4/ip_vti.c
+++ b/net/ipv4/ip_vti.c
@@@ -238,8 -238,10 +238,10 @@@ static netdev_tx_t vti_xmit(struct sk_b
  	if (skb->len > mtu) {
  		skb_dst_update_pmtu_no_confirm(skb, mtu);
  		if (skb->protocol == htons(ETH_P_IP)) {
+ 			if (!(ip_hdr(skb)->frag_off & htons(IP_DF)))
+ 				goto xmit;
 -			icmp_send(skb, ICMP_DEST_UNREACH, ICMP_FRAG_NEEDED,
 -				  htonl(mtu));
 +			icmp_ndo_send(skb, ICMP_DEST_UNREACH, ICMP_FRAG_NEEDED,
 +				      htonl(mtu));
  		} else {
  			if (mtu < IPV6_MIN_MTU)
  				mtu = IPV6_MIN_MTU;
diff --cc net/ipv6/ip6_vti.c
index f10e7a72ea62,2f0be5ac021c..000000000000
--- a/net/ipv6/ip6_vti.c
+++ b/net/ipv6/ip6_vti.c
@@@ -521,10 -521,12 +521,12 @@@ vti6_xmit(struct sk_buff *skb, struct n
  			if (mtu < IPV6_MIN_MTU)
  				mtu = IPV6_MIN_MTU;
  
 -			icmpv6_send(skb, ICMPV6_PKT_TOOBIG, 0, mtu);
 +			icmpv6_ndo_send(skb, ICMPV6_PKT_TOOBIG, 0, mtu);
  		} else {
+ 			if (!(ip_hdr(skb)->frag_off & htons(IP_DF)))
+ 				goto xmit;
 -			icmp_send(skb, ICMP_DEST_UNREACH, ICMP_FRAG_NEEDED,
 -				  htonl(mtu));
 +			icmp_ndo_send(skb, ICMP_DEST_UNREACH, ICMP_FRAG_NEEDED,
 +				      htonl(mtu));
  		}
  
  		err = -EMSGSIZE;