mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-09-27 04:47:05 +00:00
net: page_pool: factor out uninit
We'll soon (next change in the series) need a fuller unwind path in page_pool_create() so create the inverse of page_pool_init(). Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org> Reviewed-by: Eric Dumazet <edumazet@google.com> Acked-by: Jesper Dangaard Brouer <hawk@kernel.org> Signed-off-by: Jakub Kicinski <kuba@kernel.org> Reviewed-by: Shakeel Butt <shakeelb@google.com> Signed-off-by: Paolo Abeni <pabeni@redhat.com>
This commit is contained in:
parent
a214724554
commit
23cfaf67ba
1 changed files with 13 additions and 8 deletions
|
@ -238,6 +238,18 @@ static int page_pool_init(struct page_pool *pool,
|
|||
return 0;
|
||||
}
|
||||
|
||||
static void page_pool_uninit(struct page_pool *pool)
|
||||
{
|
||||
ptr_ring_cleanup(&pool->ring, NULL);
|
||||
|
||||
if (pool->p.flags & PP_FLAG_DMA_MAP)
|
||||
put_device(pool->p.dev);
|
||||
|
||||
#ifdef CONFIG_PAGE_POOL_STATS
|
||||
free_percpu(pool->recycle_stats);
|
||||
#endif
|
||||
}
|
||||
|
||||
/**
|
||||
* page_pool_create() - create a page pool.
|
||||
* @params: parameters, see struct page_pool_params
|
||||
|
@ -821,14 +833,7 @@ static void __page_pool_destroy(struct page_pool *pool)
|
|||
if (pool->disconnect)
|
||||
pool->disconnect(pool);
|
||||
|
||||
ptr_ring_cleanup(&pool->ring, NULL);
|
||||
|
||||
if (pool->p.flags & PP_FLAG_DMA_MAP)
|
||||
put_device(pool->p.dev);
|
||||
|
||||
#ifdef CONFIG_PAGE_POOL_STATS
|
||||
free_percpu(pool->recycle_stats);
|
||||
#endif
|
||||
page_pool_uninit(pool);
|
||||
kfree(pool);
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue