Re: [PATCH net-next v4 1/5] page_pool: frag API support for 32-bit arch with 64-bit DMA
From: Yunsheng Lin <hidden>
Date: 2023-06-14 03:36:39
Also in:
linux-rdma, lkml
On 2023/6/13 21:30, Alexander Lobakin wrote:
From: Yunsheng Lin <redacted> Date: Mon, 12 Jun 2023 21:02:52 +0800quoted
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.[...]quoted
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.quoted
+#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:)
quoted
#define PP_FLAG_DMA_MAP BIT(0) /* Should page_pool do the DMA * map/unmapThanks, Olek .