Lines Matching refs:pool
129 bool page_pool_get_stats(struct page_pool *pool,
212 struct page *page_pool_alloc_pages(struct page_pool *pool, gfp_t gfp);
214 static inline struct page *page_pool_dev_alloc_pages(struct page_pool *pool) in page_pool_dev_alloc_pages() argument
218 return page_pool_alloc_pages(pool, gfp); in page_pool_dev_alloc_pages()
221 struct page *page_pool_alloc_frag(struct page_pool *pool, unsigned int *offset,
224 static inline struct page *page_pool_dev_alloc_frag(struct page_pool *pool, in page_pool_dev_alloc_frag() argument
230 return page_pool_alloc_frag(pool, offset, size, gfp); in page_pool_dev_alloc_frag()
237 inline enum dma_data_direction page_pool_get_dma_dir(struct page_pool *pool) in page_pool_get_dma_dir() argument
239 return pool->p.dma_dir; in page_pool_get_dma_dir()
249 void page_pool_destroy(struct page_pool *pool);
250 void page_pool_use_xdp_mem(struct page_pool *pool, void (*disconnect)(void *),
252 void page_pool_release_page(struct page_pool *pool, struct page *page);
253 void page_pool_put_page_bulk(struct page_pool *pool, void **data,
256 static inline void page_pool_destroy(struct page_pool *pool) in page_pool_destroy() argument
260 static inline void page_pool_use_xdp_mem(struct page_pool *pool, in page_pool_use_xdp_mem() argument
265 static inline void page_pool_release_page(struct page_pool *pool, in page_pool_release_page() argument
270 static inline void page_pool_put_page_bulk(struct page_pool *pool, void **data, in page_pool_put_page_bulk() argument
276 void page_pool_put_defragged_page(struct page_pool *pool, struct page *page,
306 static inline bool page_pool_is_last_frag(struct page_pool *pool, in page_pool_is_last_frag() argument
310 return !(pool->p.flags & PP_FLAG_PAGE_FRAG) || in page_pool_is_last_frag()
314 static inline void page_pool_put_page(struct page_pool *pool, in page_pool_put_page() argument
323 if (!page_pool_is_last_frag(pool, page)) in page_pool_put_page()
326 page_pool_put_defragged_page(pool, page, dma_sync_size, allow_direct); in page_pool_put_page()
331 static inline void page_pool_put_full_page(struct page_pool *pool, in page_pool_put_full_page() argument
334 page_pool_put_page(pool, page, -1, allow_direct); in page_pool_put_full_page()
338 static inline void page_pool_recycle_direct(struct page_pool *pool, in page_pool_recycle_direct() argument
341 page_pool_put_full_page(pool, page, true); in page_pool_recycle_direct()
373 static inline bool page_pool_put(struct page_pool *pool) in page_pool_put() argument
375 return refcount_dec_and_test(&pool->user_cnt); in page_pool_put()
379 void page_pool_update_nid(struct page_pool *pool, int new_nid);
380 static inline void page_pool_nid_changed(struct page_pool *pool, int new_nid) in page_pool_nid_changed() argument
382 if (unlikely(pool->p.nid != new_nid)) in page_pool_nid_changed()
383 page_pool_update_nid(pool, new_nid); in page_pool_nid_changed()
386 static inline void page_pool_ring_lock(struct page_pool *pool) in page_pool_ring_lock() argument
387 __acquires(&pool->ring.producer_lock) in page_pool_ring_lock()
390 spin_lock(&pool->ring.producer_lock); in page_pool_ring_lock()
392 spin_lock_bh(&pool->ring.producer_lock); in page_pool_ring_lock()
395 static inline void page_pool_ring_unlock(struct page_pool *pool) in page_pool_ring_unlock() argument
396 __releases(&pool->ring.producer_lock) in page_pool_ring_unlock()
399 spin_unlock(&pool->ring.producer_lock); in page_pool_ring_unlock()
401 spin_unlock_bh(&pool->ring.producer_lock); in page_pool_ring_unlock()