On Thu, Jan 05, 2023 at 09:46:26PM +0000, Matthew Wilcox (Oracle) wrote: > We dereference the 'pp' member of struct page, so we must use a netmem > here. > > Signed-off-by: Matthew Wilcox (Oracle) <willy@xxxxxxxxxxxxx> > --- > net/core/xdp.c | 7 ++++--- > 1 file changed, 4 insertions(+), 3 deletions(-) > > diff --git a/net/core/xdp.c b/net/core/xdp.c > index 844c9d99dc0e..7520c3b27356 100644 > --- a/net/core/xdp.c > +++ b/net/core/xdp.c > @@ -375,17 +375,18 @@ EXPORT_SYMBOL_GPL(xdp_rxq_info_reg_mem_model); > void __xdp_return(void *data, struct xdp_mem_info *mem, bool napi_direct, > struct xdp_buff *xdp) > { > + struct netmem *nmem; > struct page *page; > > switch (mem->type) { > case MEM_TYPE_PAGE_POOL: > - page = virt_to_head_page(data); > + nmem = virt_to_netmem(data); > if (napi_direct && xdp_return_frame_no_direct()) > napi_direct = false; > - /* No need to check ((page->pp_magic & ~0x3UL) == PP_SIGNATURE) > + /* No need to check ((nmem->pp_magic & ~0x3UL) == PP_SIGNATURE) > * as mem->type knows this a page_pool page > */ > - page_pool_put_full_page(page->pp, page, napi_direct); > + page_pool_put_full_netmem(nmem->pp, nmem, napi_direct); > break; > case MEM_TYPE_PAGE_SHARED: > page_frag_free(data); > -- > 2.35.1 > Reviewed-by: Ilias Apalodimas <ilias.apalodimas@xxxxxxxxxx>