Subject: Re: [PATCH net v4 0/5] xsk: fix meta and publish of cq issues

From: Maciej Fijalkowski <[email-masked]>
Date: Thu, 21 May 2026 14:23:58 +0200

On Wed, May 20, 2026 at 08:42:39AM +0800, Jason Xing wrote:
> From: Jason Xing <[email-masked]>
> 
> 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/[email-masked]/
> 
> ---
> V4
> Link: https://lore.kernel.org/all/[email-masked]/
> 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/[email-masked]/
> 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/[email-masked]/
> 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
>