Thread (2 messages) flat view 2 messages, 2 authors, 13d ago

RE: [PATCH net v3] i40e: xsk: fix multi-buffer XDP_PASS skb construction

From: "Fijalkowski, Maciej" <maciej.fijalkowski@intel.com>
Date: 2026-07-24 15:25:15
Also in: intel-wired-lan

From: Chenguang Zhao <redacted>

When AF_XDP ZC receives a multi-buffer frame and the XDP program
returns XDP_PASS, i40e_construct_skb_zc() copies frags into a new
skb. The copy used skb_frag_page() as the memcpy source (page
metadata instead of packet data) and passed a virtual address to
__skb_fill_page_desc_noacc(), which expects a struct page *.

Use skb_frag_address() for the copy, attach frags with
skb_add_rx_frag() so len/data_len/truesize are updated, and on
dev_alloc_page() failure free the skb via the shared out path so
xsk_buff_free() still runs and previously attached pages are
released by kfree_skb.

Fixes: 1c9ba9c14658 ("i40e: xsk: add RX multi-buffer support")
Signed-off-by: Chenguang Zhao <redacted>
Reviewed-by: Aleksandr Loktionov <redacted>
Reviewed-by: Jason Xing <redacted>
Acked-by: Maciej Fijalkowski <maciej.fijalkowski@intel.com>
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help