Home Home > GIT Browse
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTakashi Iwai <tiwai@suse.de>2018-10-15 17:51:37 +0200
committerTakashi Iwai <tiwai@suse.de>2018-10-15 17:51:57 +0200
commitc6608bb82a84adf10014efe617a8c4ec54eea568 (patch)
tree1c3a887398f1a6a39403f7a3369631320ed97bff
parentea6c054c174d3e58af2d43dcd737fa556941bb9b (diff)
vti6: remove !skb->ignore_df check from vti6_xmit()
(bsc#1051510).
-rw-r--r--patches.fixes/vti6-remove-skb-ignore_df-check-from-vti6_xmit.patch42
-rw-r--r--series.conf1
2 files changed, 43 insertions, 0 deletions
diff --git a/patches.fixes/vti6-remove-skb-ignore_df-check-from-vti6_xmit.patch b/patches.fixes/vti6-remove-skb-ignore_df-check-from-vti6_xmit.patch
new file mode 100644
index 0000000000..0536aa43fa
--- /dev/null
+++ b/patches.fixes/vti6-remove-skb-ignore_df-check-from-vti6_xmit.patch
@@ -0,0 +1,42 @@
+From 9f2895461439fda2801a7906fb4c5fb3dbb37a0a Mon Sep 17 00:00:00 2001
+From: Alexey Kodanev <alexey.kodanev@oracle.com>
+Date: Thu, 23 Aug 2018 19:49:54 +0300
+Subject: [PATCH] vti6: remove !skb->ignore_df check from vti6_xmit()
+Git-commit: 9f2895461439fda2801a7906fb4c5fb3dbb37a0a
+Patch-mainline: v4.19-rc3
+References: bsc#1051510
+
+Before the commit d6990976af7c ("vti6: fix PMTU caching and reporting
+on xmit") '!skb->ignore_df' check was always true because the function
+skb_scrub_packet() was called before it, resetting ignore_df to zero.
+
+In the commit, skb_scrub_packet() was moved below, and now this check
+can be false for the packet, e.g. when sending it in the two fragments,
+this prevents successful PMTU updates in such case. The next attempts
+to send the packet lead to the same tx error. Moreover, vti6 initial
+MTU value relies on PMTU adjustments.
+
+This issue can be reproduced with the following LTP test script:
+ udp_ipsec_vti.sh -6 -p ah -m tunnel -s 2000
+
+Fixes: ccd740cbc6e0 ("vti6: Add pmtu handling to vti6_xmit.")
+Signed-off-by: Alexey Kodanev <alexey.kodanev@oracle.com>
+Acked-by: Steffen Klassert <steffen.klassert@secunet.com>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+Acked-by: Takashi Iwai <tiwai@suse.de>
+
+---
+ net/ipv6/ip6_vti.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/net/ipv6/ip6_vti.c
++++ b/net/ipv6/ip6_vti.c
+@@ -481,7 +481,7 @@ vti6_xmit(struct sk_buff *skb, struct ne
+ }
+
+ mtu = dst_mtu(dst);
+- if (!skb->ignore_df && skb->len > mtu) {
++ if (skb->len > mtu) {
+ skb_dst(skb)->ops->update_pmtu(dst, NULL, skb, mtu);
+
+ if (skb->protocol == htons(ETH_P_IPV6)) {
diff --git a/series.conf b/series.conf
index 4989b3a16b..78760cd215 100644
--- a/series.conf
+++ b/series.conf
@@ -17658,6 +17658,7 @@
patches.arch/x86-nmi-fix-nmi-uaccess-race-against-cr3-switching
patches.fixes/x86-mce-Fix-set_mce_nospec-to-avoid-GP-fault.patch
patches.arch/x86-vdso-fix-lsl-operand-order.patch
+ patches.fixes/vti6-remove-skb-ignore_df-check-from-vti6_xmit.patch
patches.drivers/net-hns-add-the-code-for-cleaning-pkt-in-chip.patch
patches.drivers/net-hns-add-netif_carrier_off-before-change-speed-an.patch
patches.drivers/ibmvnic-Include-missing-return-code-checks-in-reset-.patch