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);
> +};
> +

Reply via email to