From 28fcb4b56f929f4627f3c4c6c6dc61b292b8e55d Mon Sep 17 00:00:00 2001 From: Bui Quang Minh Date: Thu, 22 May 2025 11:01:15 +0700 Subject: [PATCH] xsk: add missing virtual address conversion for page In commit 7ead4405e06f ("xsk: convert xdp_copy_frags_from_zc() to use page_pool_dev_alloc()"), when converting from netmem to page, I missed a call to page_address() around skb_frag_page(frag) to get the virtual address of the page. This commit uses skb_frag_address() helper to fix the issue. Fixes: 7ead4405e06f ("xsk: convert xdp_copy_frags_from_zc() to use page_pool_dev_alloc()") Reviewed-by: Alexander Lobakin Signed-off-by: Bui Quang Minh Link: https://patch.msgid.link/20250522040115.5057-1-minhquangbui99@gmail.com Signed-off-by: Paolo Abeni --- net/core/xdp.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/net/core/xdp.c b/net/core/xdp.c index e6f22ba61c1e..491334b9b8be 100644 --- a/net/core/xdp.c +++ b/net/core/xdp.c @@ -709,8 +709,7 @@ static noinline bool xdp_copy_frags_from_zc(struct sk_buff *skb, return false; } - memcpy(page_address(page) + offset, - skb_frag_page(frag) + skb_frag_off(frag), + memcpy(page_address(page) + offset, skb_frag_address(frag), LARGEST_ALIGN(len)); __skb_fill_page_desc_noacc(sinfo, i, page, offset, len); -- 2.25.1