From: Eric Dumazet <edumazet@kernel.org>
To: davem@davemloft.net, kuba@kernel.org, pabeni@redhat.com
Cc: horms@kernel.org, netdev@vger.kernel.org, willemb@google.com,
steffen.klassert@secunet.com, tom@herbertland.com,
cenzhang@linux.microsoft.com,
AutonomousCodeSecurity@microsoft.com,
Eric Dumazet <edumazet@kernel.org>
Subject: [PATCH net v3 0/2] net: gro: fix frag0 and remcsum handling
Date: Tue, 3 Nov 2026 11:57:50 +0100 [thread overview]
Message-ID: <20261103105752.49542-1-edumazet@kernel.org> (raw)
Two GRO fixes for paths using remote checksum offload (VXLAN, GUE)
and for NAPI_GRO_CB(skb)->frag0 after a pull.
Patch 1 skips skb_gro_remcsum_cleanup() once the skb was merged,
as grc->offset can no longer be trusted, except for fraglist members,
whose inner checksum is restored.
Patch 2 invalidates frag0 before a pull, which commit bd56a29c7a4e
("net: gro: change skb_gro_network_header()") stopped doing.
v3:
- Patch 1: restore the inner checksum of fraglist members instead of
keeping the adjusted value, which was wrong for forwarded packets
and for GUE. Only restore it when it is part of the headers
pulled by skb_gro_receive_list(), as start and offset come from the
packet. Mention FOU_F_REMCSUM_NOPARTIAL (Sashiko).
- Patch 2: only use frag0 in gro_try_pull_from_frag0() while frag0_len
is not zero, to not corrupt headers after a failed pull (Sashiko).
- Explain how the issues were found (netdev bot).
v2: https://lore.kernel.org/netdev/20261030125955.3107383-1-edumazet@kernel.org/
- Patch 1: reword the comment and changelog: skb->data is not always
moved (frag/head steal).
- Patch 2: invalidate frag0 before the pull, as __pskb_pull_tail()
can fail after pskb_expand_head() freed the old head (Sashiko).
- Patch 2: add a Fixes: tag for UDP fraglist GRO, which pulls
directly since before bd56a29c7a4e (Sashiko).
- CC Tom Herbert and stable.
v1: https://lore.kernel.org/netdev/20261028141325.2103814-1-edumazet@kernel.org/
Eric Dumazet (2):
net: gro: do not undo remote checksum offload on merged packets
net: gro: invalidate frag0 after a pull
include/net/gro.h | 27 +++++++++++++++++++++++++++
net/core/gro.c | 9 ++++++++-
net/ipv4/esp4_offload.c | 1 +
net/ipv4/udp_offload.c | 1 +
net/ipv6/esp6_offload.c | 1 +
5 files changed, 38 insertions(+), 1 deletion(-)
--
2.53.0
next reply other threads:[~2026-11-03 10:58 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-11-03 10:57 Eric Dumazet [this message]
2026-11-03 10:57 ` [PATCH net v3 1/2] net: gro: do not undo remote checksum offload on merged packets Eric Dumazet
2026-11-03 10:57 ` [PATCH net v3 2/2] net: gro: invalidate frag0 after a pull Eric Dumazet
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20261103105752.49542-1-edumazet@kernel.org \
--to=edumazet@kernel.org \
--cc=AutonomousCodeSecurity@microsoft.com \
--cc=cenzhang@linux.microsoft.com \
--cc=davem@davemloft.net \
--cc=horms@kernel.org \
--cc=kuba@kernel.org \
--cc=netdev@vger.kernel.org \
--cc=pabeni@redhat.com \
--cc=steffen.klassert@secunet.com \
--cc=tom@herbertland.com \
--cc=willemb@google.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox