From: Yunsheng Lin <linyunsheng@xxxxxxxxxx> Date: Mon, 12 Jun 2023 21:02:52 +0800 > Currently page_pool_alloc_frag() is not supported in 32-bit > arch with 64-bit DMA, which seems to be quite common, see > [1], which means driver may need to handle it when using > page_pool_alloc_frag() API. [...] > diff --git a/include/net/page_pool.h b/include/net/page_pool.h > index 126f9e294389..5c7f7501f300 100644 > --- a/include/net/page_pool.h > +++ b/include/net/page_pool.h > @@ -33,6 +33,7 @@ > #include <linux/mm.h> /* Needed by ptr_ring */ > #include <linux/ptr_ring.h> > #include <linux/dma-direction.h> This include is redundant now that you include dma-mapping.h. > +#include <linux/dma-mapping.h> As Jakub previously mentioned, this involves including dma-mapping.h, which is relatively heavy, to each source file which includes skbuff.h, i.e. almost the whole kernel :D I addressed this in my series, which I hope will land soon after yours (sending new revision in 24-48 hours), so you can leave it as it is. Or otherwise you can pick my solution (or come up with your own :D). > > #define PP_FLAG_DMA_MAP BIT(0) /* Should page_pool do the DMA > * map/unmap Thanks, Olek