Thread (84 messages) 84 messages, 6 authors, 2023-01-11

Re: [PATCH v2 03/24] page_pool: Add netmem_set_dma_addr() and netmem_get_dma_addr()

From: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Date: 2023-01-09 17:31:10
Also in: linux-mm

Hi Matthew

On Thu, 5 Jan 2023 at 23:46, Matthew Wilcox (Oracle)
[off-list ref] wrote:
quoted hunk ↗ jump to hunk
Turn page_pool_set_dma_addr() and page_pool_get_dma_addr() into
wrappers.

Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org>
---
 include/net/page_pool.h | 22 ++++++++++++++++------
 1 file changed, 16 insertions(+), 6 deletions(-)
diff --git a/include/net/page_pool.h b/include/net/page_pool.h
index 84b4ea8af015..196b585763d9 100644
--- a/include/net/page_pool.h
+++ b/include/net/page_pool.h
@@ -449,21 +449,31 @@ static inline void page_pool_recycle_direct(struct page_pool *pool,
 #define PAGE_POOL_DMA_USE_PP_FRAG_COUNT        \
                (sizeof(dma_addr_t) > sizeof(unsigned long))

-static inline dma_addr_t page_pool_get_dma_addr(struct page *page)
+static inline dma_addr_t netmem_get_dma_addr(struct netmem *nmem)
Ideally, we'd like to avoid having people call these directly and use
the page_pool_(get|set)_dma_addr wrappers.  Can we add a comment in
v3?
 {
-       dma_addr_t ret = page->dma_addr;
+       dma_addr_t ret = nmem->dma_addr;

        if (PAGE_POOL_DMA_USE_PP_FRAG_COUNT)
-               ret |= (dma_addr_t)page->dma_addr_upper << 16 << 16;
+               ret |= (dma_addr_t)nmem->dma_addr_upper << 16 << 16;

        return ret;
 }

-static inline void page_pool_set_dma_addr(struct page *page, dma_addr_t addr)
+static inline dma_addr_t page_pool_get_dma_addr(struct page *page)
+{
+       return netmem_get_dma_addr(page_netmem(page));
+}
+
+static inline void netmem_set_dma_addr(struct netmem *nmem, dma_addr_t addr)
 {
-       page->dma_addr = addr;
+       nmem->dma_addr = addr;
        if (PAGE_POOL_DMA_USE_PP_FRAG_COUNT)
-               page->dma_addr_upper = upper_32_bits(addr);
+               nmem->dma_addr_upper = upper_32_bits(addr);
+}
+
+static inline void page_pool_set_dma_addr(struct page *page, dma_addr_t addr)
+{
+       netmem_set_dma_addr(page_netmem(page), addr);
 }

 static inline bool is_page_pool_compiled_in(void)
--
2.35.1
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help