diff options
Diffstat (limited to 'include/net/page_pool.h')
| -rw-r--r-- | include/net/page_pool.h | 11 | 
1 files changed, 9 insertions, 2 deletions
diff --git a/include/net/page_pool.h b/include/net/page_pool.h index a4082406a003..79a805542d0f 100644 --- a/include/net/page_pool.h +++ b/include/net/page_pool.h @@ -80,6 +80,8 @@ struct page_pool_params {  	enum dma_data_direction dma_dir; /* DMA mapping direction */  	unsigned int	max_len; /* max DMA sync memory size */  	unsigned int	offset;  /* DMA addr offset */ +	void (*init_callback)(struct page *page, void *arg); +	void *init_arg;  };  struct page_pool { @@ -94,6 +96,7 @@ struct page_pool {  	unsigned int frag_offset;  	struct page *frag_page;  	long frag_users; +	u32 xdp_mem_id;  	/*  	 * Data structure for allocation side @@ -168,9 +171,12 @@ bool page_pool_return_skb_page(struct page *page);  struct page_pool *page_pool_create(const struct page_pool_params *params); +struct xdp_mem_info; +  #ifdef CONFIG_PAGE_POOL  void page_pool_destroy(struct page_pool *pool); -void page_pool_use_xdp_mem(struct page_pool *pool, void (*disconnect)(void *)); +void page_pool_use_xdp_mem(struct page_pool *pool, void (*disconnect)(void *), +			   struct xdp_mem_info *mem);  void page_pool_release_page(struct page_pool *pool, struct page *page);  void page_pool_put_page_bulk(struct page_pool *pool, void **data,  			     int count); @@ -180,7 +186,8 @@ static inline void page_pool_destroy(struct page_pool *pool)  }  static inline void page_pool_use_xdp_mem(struct page_pool *pool, -					 void (*disconnect)(void *)) +					 void (*disconnect)(void *), +					 struct xdp_mem_info *mem)  {  }  static inline void page_pool_release_page(struct page_pool *pool,  |