On 2023/11/6 10:44, Mina Almasry wrote:
diff --git a/include/net/page_pool/types.h b/include/net/page_pool/types.h index 6fc5134095ed..d4bea053bb7e 100644 --- a/include/net/page_pool/types.h +++ b/include/net/page_pool/types.h @@ -60,6 +60,8 @@ struct page_pool_params { int nid; struct device *dev; struct napi_struct *napi;
- u8 memory_provider;
- void *mp_priv; enum dma_data_direction dma_dir; unsigned int max_len; unsigned int offset;
@@ -118,6 +120,19 @@ struct page_pool_stats { }; #endif +struct mem_provider;
The above doesn't seems be used?
+enum pp_memory_provider_type {
- __PP_MP_NONE, /* Use system allocator directly */
+};
+struct pp_memory_provider_ops {
Is it better to rename the above to pp_memory_provider and put the above memory_provider and mp_priv here? so that all the fields related to pp_memory_provider are in one place?
It is probably better to provide a register function for driver to implement its own pp_memory_provider in the future.
- int (*init)(struct page_pool *pool);
- void (*destroy)(struct page_pool *pool);
- struct page *(*alloc_pages)(struct page_pool *pool, gfp_t gfp);
- bool (*release_page)(struct page_pool *pool, struct page *page);
+};