Home Home > GIT Browse > openSUSE-15.1
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJiri Slaby <jslaby@suse.cz>2019-05-10 14:13:58 +0200
committerJiri Slaby <jslaby@suse.cz>2019-05-16 08:27:59 +0200
commit3543e330c1abf499d6bb90761f28d0ef47766bd6 (patch)
tree142953017a6ad6a2db4eb6b258cdd0805f1cd85d
parentf6baad3741a195becea93e0f3180e5bf4b87772c (diff)
net: aquantia: fix rx checksum offload for UDP/TCP over IPv6
(networking-stable-19_03_28).
-rw-r--r--patches.suse/net-aquantia-fix-rx-checksum-offload-for-UDP-TCP-ove.patch39
-rw-r--r--series.conf1
2 files changed, 40 insertions, 0 deletions
diff --git a/patches.suse/net-aquantia-fix-rx-checksum-offload-for-UDP-TCP-ove.patch b/patches.suse/net-aquantia-fix-rx-checksum-offload-for-UDP-TCP-ove.patch
new file mode 100644
index 0000000000..628a6af5e2
--- /dev/null
+++ b/patches.suse/net-aquantia-fix-rx-checksum-offload-for-UDP-TCP-ove.patch
@@ -0,0 +1,39 @@
+From: Dmitry Bogdanov <dmitry.bogdanov@aquantia.com>
+Date: Sat, 16 Mar 2019 08:28:18 +0000
+Subject: net: aquantia: fix rx checksum offload for UDP/TCP over IPv6
+Git-commit: a7faaa0c5dc7d091cc9f72b870d7edcdd6f43f12
+Patch-mainline: v5.1-rc3
+References: networking-stable-19_03_28
+
+TCP/UDP checksum validity was propagated to skb
+only if IP checksum is valid.
+But for IPv6 there is no validity as there is no checksum in IPv6.
+This patch propagates TCP/UDP checksum validity regardless of IP checksum.
+
+Fixes: 018423e90bee ("net: ethernet: aquantia: Add ring support code")
+Signed-off-by: Igor Russkikh <igor.russkikh@aquantia.com>
+Signed-off-by: Nikita Danilov <nikita.danilov@aquantia.com>
+Signed-off-by: Dmitry Bogdanov <dmitry.bogdanov@aquantia.com>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+Signed-off-by: Jiri Slaby <jslaby@suse.cz>
+---
+ drivers/net/ethernet/aquantia/atlantic/aq_ring.c | 5 +++--
+ 1 file changed, 3 insertions(+), 2 deletions(-)
+
+--- a/drivers/net/ethernet/aquantia/atlantic/aq_ring.c
++++ b/drivers/net/ethernet/aquantia/atlantic/aq_ring.c
+@@ -231,11 +231,12 @@ int aq_ring_rx_clean(struct aq_ring_s *s
+ } else {
+ if (buff->is_ip_cso) {
+ __skb_incr_checksum_unnecessary(skb);
+- if (buff->is_udp_cso || buff->is_tcp_cso)
+- __skb_incr_checksum_unnecessary(skb);
+ } else {
+ skb->ip_summed = CHECKSUM_NONE;
+ }
++
++ if (buff->is_udp_cso || buff->is_tcp_cso)
++ __skb_incr_checksum_unnecessary(skb);
+ }
+
+ skb_set_hash(skb, buff->rss_hash,
diff --git a/series.conf b/series.conf
index 84ea66bd5d..c3052bfc68 100644
--- a/series.conf
+++ b/series.conf
@@ -21581,6 +21581,7 @@
patches.suse/tun-properly-test-for-IFF_UP.patch
patches.suse/tun-add-a-missing-rcu_read_unlock-in-error-path.patch
patches.suse/net-rose-fix-a-possible-stack-overflow.patch
+ patches.suse/net-aquantia-fix-rx-checksum-offload-for-UDP-TCP-ove.patch
patches.drivers/mISDN-hfcpci-Test-both-vendor-device-ID-for-Digium-H.patch
patches.suse/net-packet-Set-__GFP_NOWARN-upon-allocation-in-alloc.patch
patches.fixes/0001-netfilter-bridge-set-skb-transport_header-before-ent.patch