On Mon, 24 Aug 2026 11:06:43 +0800 Jiayuan Chen wrote: > bpf_xdp_shrink_data() frees a released frag via __xdp_return() using > xdp->rxq->mem.type, but that type is wrong for skb-backed XDP: the skb is > cow'd into page_pool memory while the rxq still says MEM_TYPE_PAGE_SHARED, > so the page_pool page is freed with page_frag_free() and we hit > "Bad page state ... page_pool leak".
FWIW I like the idea if it can be made to work fully correctly.

