]> git.ipfire.org Git - thirdparty/kernel/linux.git/commit
udp: Fix UDP length on last GSO_PARTIAL segment
authorGal Pressman <gal@nvidia.com>
Mon, 18 May 2026 06:22:50 +0000 (09:22 +0300)
committerJakub Kicinski <kuba@kernel.org>
Wed, 20 May 2026 22:03:47 +0000 (15:03 -0700)
commit78effd896eee11ac9db9bcbb53e7bbcad96073d7
tree6a95e62e9307e429e9564e8f0c0a2561c759a06e
parent5f17ae0f595aeb560155ce98edbe44d3eacc7e40
udp: Fix UDP length on last GSO_PARTIAL segment

Following the cited commit, __udp_gso_segment() writes single MSS length
in the UDP header.
The cited patch doesn't account for the fact that the last segment could
be a GSO skb by itself. This could happen when the size of the packet is
a multiple of MSS, hence the first segment is also the last one (there
is no need for a remainder skb).

When the post-loop segment is a GSO skb, assign the single MSS length in
the UDP header.

Fixes: b10b446ce7ad ("udp: gso: Use single MSS length in UDP header for GSO_PARTIAL")
Reported-by: Matthew Schwartz <matthew.schwartz@linux.dev>
Closes: https://lore.kernel.org/all/6c3fb15e-711d-4b8d-b152-e03d9b05293f@linux.dev/
Tested-by: Matthew Schwartz <matthew.schwartz@linux.dev>
Reviewed-by: Dragos Tatulea <dtatulea@nvidia.com>
Signed-off-by: Gal Pressman <gal@nvidia.com>
Link: https://patch.msgid.link/20260518062250.3019914-3-gal@nvidia.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
net/ipv4/udp_offload.c