]> git.baikalelectronics.ru Git - kernel.git/commit
udp: only do GSO if # of segs > 1
authorJosh Hunt <johunt@akamai.com>
Wed, 2 Oct 2019 17:29:23 +0000 (13:29 -0400)
committerDavid S. Miller <davem@davemloft.net>
Thu, 3 Oct 2019 15:47:10 +0000 (11:47 -0400)
commit1b4a69d915fb834e454eda3eb173928b9f4adffa
tree4e5ce254832ec5c61c808e325a520e65f11e0442
parentdd0a1047a025afcac8a7f9b7cbf26baba712b863
udp: only do GSO if # of segs > 1

Prior to this change an application sending <= 1MSS worth of data and
enabling UDP GSO would fail if the system had SW GSO enabled, but the
same send would succeed if HW GSO offload is enabled. In addition to this
inconsistency the error in the SW GSO case does not get back to the
application if sending out of a real device so the user is unaware of this
failure.

With this change we only perform GSO if the # of segments is > 1 even
if the application has enabled segmentation. I've also updated the
relevant udpgso selftests.

Fixes: a388728846a0 ("udp: generate gso with UDP_SEGMENT")
Signed-off-by: Josh Hunt <johunt@akamai.com>
Reviewed-by: Willem de Bruijn <willemb@google.com>
Reviewed-by: Alexander Duyck <alexander.h.duyck@linux.intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/ipv4/udp.c
net/ipv6/udp.c
tools/testing/selftests/net/udpgso.c