From: Jakub Kicinski Date: Fri, 24 Jul 2026 22:12:16 +0000 (-0700) Subject: Merge branch 'xsk-fix-af_xdp-multi-buffer-tx-descriptor-reclaim' X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=c7b0c912593e8e33ef8f2335a30b757dd7763544;p=thirdparty%2Fkernel%2Fstable.git Merge branch 'xsk-fix-af_xdp-multi-buffer-tx-descriptor-reclaim' Maciej Fijalkowski says: ==================== xsk: fix AF_XDP multi-buffer Tx descriptor reclaim This series fixes several AF_XDP multi-buffer Tx paths where descriptors consumed from the Tx ring are not consistently returned to userspace through the completion ring when the packet is later dropped as invalid. The affected cases are invalid or oversized multi-buffer Tx packets in both the generic and zero-copy paths. In these cases, the kernel can consume one or more Tx descriptors while building or validating a multi-buffer packet, then drop the packet before it reaches the device. Userspace still owns the UMEM buffers only after the corresponding addresses are returned through the CQ. Missing completions therefore make userspace lose track of those buffers. The generic path fixes cover following related cases: * partially built multi-buffer skbs dropped by xsk_drop_skb(); continuation descriptors left in the Tx ring after xsk_build_skb() reports overflow; * invalid descriptors encountered in the middle of a multi-buffer packet, including the offending invalid descriptor itself. The zero-copy path is handled separately. The batched Tx parser now distinguishes descriptors that can be passed to the driver from descriptors that are consumed only because they belong to an invalid multi-buffer packet. Reclaim-only descriptors are written to the CQ address area and published in completion order, after any earlier driver-visible Tx descriptors. The last two patches update xskxceiver so the tests account invalid multi-buffer Tx packets as descriptors that must be reclaimed, while still not expecting those invalid packets on the Rx side. This is a follow-up to Jason's changes [0] which were addressing generic xmit only and this set allows me to pass full xskxceiver test suite run against ice driver. ==================== Link: https://patch.msgid.link/20260719135609.147823-1-maciej.fijalkowski@intel.com Signed-off-by: Jakub Kicinski --- c7b0c912593e8e33ef8f2335a30b757dd7763544