On Fri, 8 Dec 2023 16:02:16 +0800 duanqiangwen wrote:
ifconfig ethx up, will set page->refcount larger than 1, and then ifconfig ethx down, calling __page_frag_cache_drain() to free pages, it is not compatible with page pool. So deleting codes which changing page->refcount.
Fixes: 3c47e8ae113a ("net: libwx: Support to receive packets in NAPI")
Signed-off-by: duanqiangwen duanqiangwen@net-swift.com
nit: no empty line between Fixes and Signed-off-by, please fix and repost
@@ -335,11 +269,12 @@ static struct sk_buff *wx_build_skb(struct wx_ring *rx_ring, if (size <= WX_RXBUFFER_256) { memcpy(__skb_put(skb, size), page_addr, ALIGN(size, sizeof(long)));
rx_buffer->pagecnt_bias++;
page_pool_put_full_page(rx_ring->page_pool, rx_buffer->page, false);
FWIW I'm 90% sure you can pass true as the last argument here. The rule for "allow direct recycling" is basically - are you in the same context the context which will allocate from this page pool.