diff options
| author | Jakub Kicinski <kuba@kernel.org> | 2026-09-29 17:11:34 -0700 |
|---|---|---|
| committer | Jakub Kicinski <kuba@kernel.org> | 2026-09-29 17:11:35 -0700 |
| commit | 38b7c470691dc28e5b42b45949cbc024cca3ac4e (patch) | |
| tree | a8936974012905ffbca18a02a53b2eab8448fd39 /tools/perf/scripts/python/stackcollapse.py | |
| parent | 2cf81fc9505b148b1b70068303ea6ea4b1212403 (diff) | |
| parent | 1221246d3bd08d8b5228777e1a9b3361ca946e64 (diff) | |
| download | linux-38b7c470691dc28e5b42b45949cbc024cca3ac4e.tar.gz linux-38b7c470691dc28e5b42b45949cbc024cca3ac4e.zip | |
Merge branch 'fix-udp-splice-checksum-alignment-across-fragments'
Alireza Asgari via says:
====================
Fix UDP splice checksum alignment across fragments
When skb_splice_from_iter() appends several pipe fragments, it updates
skb->len only after the loop. The software-checksum helper nevertheless
uses that unchanged length as the checksum position for each fragment.
An odd number of bytes already appended during the call therefore gives
later fragments the wrong checksum alignment.
A standalone reproducer primes a UDP socket with sendto(MSG_MORE), splices
distinct pipe buffers, then uncorks the datagram. The send succeeds, but
the receiver drops the packet and increments its checksum-error counter.
Patch 1 passes the actual cumulative offset to the checksum helper without
changing the final length update or partial-progress handling. Patch 2
adds a loopback selftest covering IPv4, IPv6, IPv4-mapped destinations,
connected and unconnected sockets, prefixes and fragment boundaries.
====================
Link: https://patch.msgid.link/20260924-fix-udp-splice-checksum-v1-0-fe61d65447a8@asgari.net
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Diffstat (limited to 'tools/perf/scripts/python/stackcollapse.py')
0 files changed, 0 insertions, 0 deletions
