Re: [PATCH net v4 0/5] xsk: fix meta and publish of cq issues
From: Maciej Fijalkowski <maciej.fijalkowski@intel.com>
Date: 2026-05-21 12:24:42
Also in:
bpf
On Wed, May 20, 2026 at 08:42:39AM +0800, Jason Xing wrote:
From: Jason Xing <kernelxing@tencent.com>
The series is the product of previous review from sashiko[1].
1) META
patch 1: address TOCTOU around metadata.
2) PUBLISH of CQ
patch 2: make sure xsk_addr->addrs[] can be published to cq when
overflow occurs.
patch 3: keep cleaning up the continuation descs (more than 17) and
publish its address when overflow occurs.
patch 4: like patch 3, but only handles the invalid descs cases.
[1]: https://lore.kernel.org/all/20260502200722.53960-1-kerneljasonxing@gmail.com/ (local)
---
V4
Link: https://lore.kernel.org/all/20260517063311.28921-1-kerneljasonxing@gmail.com/ (local)
1. correct the description of xmit path in patch 3 (sashiko)
2. move set logic into xmit path in patch 3 (Stan)
V3
Link: https://lore.kernel.org/all/20260515123018.80147-1-kerneljasonxing@gmail.com/ (local)
1. avoid breaking previous usage of sendto, and siliently handle
overflow case (Stan, sashiko)
2. add one particular exception process in patch 4 (sashiko)
3. adjust the selftest to make sure it passes in either virutal or
physical machines, which includes add usleep to support physical machine.
V2
Link: https://lore.kernel.org/all/20260510012310.88570-1-kerneljasonxing@gmail.com/ (local)
1. adjust selftests (Jakub)
2. add READ_ONCE in patch 1 (Stan)FWIW I still get test failures (yes with patch 5 applied). PTAL.
Jason Xing (5):
xsk: cache csum_start/csum_offset to fix TOCTOU in xsk_skb_metadata()
xsk: fix buffer leak in xsk_drop_skb() for AF_XDP multi-buffer Tx
xsk: drain continuation descs after overflow in xsk_build_skb()
xsk: drain continuation descs on invalid descriptor in
__xsk_generic_xmit()
selftests/xsk: drain CQ to wait for TX completion
include/net/xdp_sock.h | 1 +
net/xdp/xsk.c | 44 +++++++++++++----
.../selftests/bpf/prog_tests/test_xsk.c | 48 +++++++++++--------
3 files changed, 63 insertions(+), 30 deletions(-)
--
2.43.7