On 2023/6/13 21:30, Alexander Lobakin wrote: > 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 am not sure I understand the part about 'includes skbuff.h' yet, it seems 'skbuff.h' does not have anything related to this patch? > 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). Do you mean by removing "#include <linux/dma-direction.h>" as dma-mapping.h has included dma-direction.h? But I am not sure if there is any hard rule about not explicitly including a .h which is implicitly included. What if the dma-mapping.h is changed to not include dma-direction.h anymore? Anyway, it seems it is unlikely to not include dma-direction.h in dma-mapping.h, Will remove the "#include <linux/dma-direction.h>" if there is another version needed for this patchset:) > >> >> #define PP_FLAG_DMA_MAP BIT(0) /* Should page_pool do the DMA >> * map/unmap > > Thanks, > Olek > > . >