This is a note to let you know that I've just added the patch titled tunnel: do not confirm neighbor when do pmtu update to the 5.4-stable tree which can be found at: http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary The filename of the patch is: tunnel-do-not-confirm-neighbor-when-do-pmtu-update.patch and it can be found in the queue-5.4 subdirectory. If you, or anyone else, feels it should not be added to the stable tree, please let <stable@xxxxxxxxxxxxxxx> know about it. >From foo@baz Wed 01 Jan 2020 10:35:31 PM CET From: Hangbin Liu <liuhangbin@xxxxxxxxx> Date: Sun, 22 Dec 2019 10:51:13 +0800 Subject: tunnel: do not confirm neighbor when do pmtu update From: Hangbin Liu <liuhangbin@xxxxxxxxx> [ Upstream commit 7a1592bcb15d71400a98632727791d1e68ea0ee8 ] When do tunnel PMTU update and calls __ip6_rt_update_pmtu() in the end, we should not call dst_confirm_neigh() as there is no two-way communication. v5: No Change. v4: Update commit description v3: Do not remove dst_confirm_neigh, but add a new bool parameter in dst_ops.update_pmtu to control whether we should do neighbor confirm. Also split the big patch to small ones for each area. v2: Remove dst_confirm_neigh in __ip6_rt_update_pmtu. Fixes: 0dec879f636f ("net: use dst_confirm_neigh for UDP, RAW, ICMP, L2TP") Reviewed-by: Guillaume Nault <gnault@xxxxxxxxxx> Tested-by: Guillaume Nault <gnault@xxxxxxxxxx> Acked-by: David Ahern <dsahern@xxxxxxxxx> Signed-off-by: Hangbin Liu <liuhangbin@xxxxxxxxx> Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx> Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx> --- net/ipv4/ip_tunnel.c | 2 +- net/ipv6/ip6_tunnel.c | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) --- a/net/ipv4/ip_tunnel.c +++ b/net/ipv4/ip_tunnel.c @@ -505,7 +505,7 @@ static int tnl_update_pmtu(struct net_de mtu = skb_valid_dst(skb) ? dst_mtu(skb_dst(skb)) : dev->mtu; if (skb_valid_dst(skb)) - skb_dst_update_pmtu(skb, mtu); + skb_dst_update_pmtu_no_confirm(skb, mtu); if (skb->protocol == htons(ETH_P_IP)) { if (!skb_is_gso(skb) && --- a/net/ipv6/ip6_tunnel.c +++ b/net/ipv6/ip6_tunnel.c @@ -640,7 +640,7 @@ ip4ip6_err(struct sk_buff *skb, struct i if (rel_info > dst_mtu(skb_dst(skb2))) goto out; - skb_dst_update_pmtu(skb2, rel_info); + skb_dst_update_pmtu_no_confirm(skb2, rel_info); } icmp_send(skb2, rel_type, rel_code, htonl(rel_info)); @@ -1132,7 +1132,7 @@ route_lookup: mtu = max(mtu, skb->protocol == htons(ETH_P_IPV6) ? IPV6_MIN_MTU : IPV4_MIN_MTU); - skb_dst_update_pmtu(skb, mtu); + skb_dst_update_pmtu_no_confirm(skb, mtu); if (skb->len - t->tun_hlen - eth_hlen > mtu && !skb_is_gso(skb)) { *pmtu = mtu; err = -EMSGSIZE; Patches currently in stable-queue which might be from liuhangbin@xxxxxxxxx are queue-5.4/ipv6-addrconf-only-check-invalid-header-values-when-netlink_f_strict_chk-is-set.patch queue-5.4/sit-do-not-confirm-neighbor-when-do-pmtu-update.patch queue-5.4/net-dst-add-new-function-skb_dst_update_pmtu_no_confirm.patch queue-5.4/vti-do-not-confirm-neighbor-when-do-pmtu-update.patch queue-5.4/net-dst-do-not-confirm-neighbor-for-vxlan-and-geneve-pmtu-update.patch queue-5.4/gtp-do-not-confirm-neighbor-when-do-pmtu-update.patch queue-5.4/ip6_gre-do-not-confirm-neighbor-when-do-pmtu-update.patch queue-5.4/net-add-bool-confirm_neigh-parameter-for-dst_ops.update_pmtu.patch queue-5.4/tunnel-do-not-confirm-neighbor-when-do-pmtu-update.patch