]> www.infradead.org Git - users/jedix/linux-maple.git/commit
vxlan: fix remcsum when GRO on and CHECKSUM_PARTIAL boundary is outer UDP
authorK. Den <den@klaipeden.com>
Mon, 31 Jul 2017 16:05:20 +0000 (01:05 +0900)
committerChuck Anderson <chuck.anderson@oracle.com>
Fri, 15 Sep 2017 03:39:10 +0000 (20:39 -0700)
commit775c19cbe203ca9e188ab504caf3d008b058ee14
treed3f620f34a2b701da75c2e0b7d3e2f2ce2f0ae75
parent23683e8f0beea777e3ed606520185cda124af2e5
vxlan: fix remcsum when GRO on and CHECKSUM_PARTIAL boundary is outer UDP

In the case that GRO is turned on and the original received packet is
CHECKSUM_PARTIAL, if the outer UDP header is exactly at the last
csum-unnecessary point, which for instance could occur if the packet
comes from another Linux guest on the same Linux host, we have to do
either remcsum_adjust or set up CHECKSUM_PARTIAL again with its
csum_start properly reset considering RCO.

However, since b7fe10e5ebac("gro: Fix remcsum offload to deal with frags
in GRO") that barrier in such case could be skipped if GRO turned on,
hence we pass over it and the inner L4 validation mistakenly reckons
it as a bad csum.

This patch makes remcsum_offload being reset at the same time of GRO
remcsum cleanup, so as to make it work in such case as before.

Fixes: b7fe10e5ebac ("gro: Fix remcsum offload to deal with frags in GRO")
Signed-off-by: Koichiro Den <den@klaipeden.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Orabug: 25879842
(cherry picked from commit be73b3043bf465455d4c9b88f68e03b6447bcfb0)
Signed-off-by: Cathy Zhou <Cathy.Zhou@Oracle.COM>
Reviewed-by: Jack Vogel <jack.vogel@oracle.com>
drivers/net/vxlan.c