net: page_pool: factor out uninit
authorJakub Kicinski <kuba@kernel.org>
Sun, 26 Nov 2023 23:07:28 +0000 (15:07 -0800)
committerPaolo Abeni <pabeni@redhat.com>
Tue, 28 Nov 2023 14:48:39 +0000 (15:48 +0100)
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>
net/core/page_pool.c

index df2a06d7da522cbc38911201769b93eae141c678..2e4575477e7130a103cb09f7de25a287706c47b4 100644 (file)
@@ -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);
 }