Alexander Lobakin <aleksander.lobakin@xxxxxxxxx> writes: > Currently, page_pool_put_page_bulk() indeed takes an array of pointers > to the data, not pages, despite the name. As one side effect, when > you're freeing frags from &skb_shared_info, xdp_return_frame_bulk() > converts page pointers to virtual addresses and then > page_pool_put_page_bulk() converts them back. > Make page_pool_put_page_bulk() actually handle array of pages. Pass > frags directly and use virt_to_page() when freeing xdpf->data, so that > the PP core will then get the compound head and take care of the rest. > > Reviewed-by: Maciej Fijalkowski <maciej.fijalkowski@xxxxxxxxx> > Signed-off-by: Alexander Lobakin <aleksander.lobakin@xxxxxxxxx> Reviewed-by: Toke Høiland-Jørgensen <toke@xxxxxxxxxx>