diff options
| author | Jakub Kicinski <kuba@kernel.org> | 2023-11-21 17:22:37 -0800 |
|---|---|---|
| committer | Jakub Kicinski <kuba@kernel.org> | 2023-11-21 17:22:38 -0800 |
| commit | 46e208e70a848a828b35d1e4052313f3b34516d6 (patch) | |
| tree | 7426b591fcfd20c14af1a71aec38adce9086ab25 /net/core/page_pool.c | |
| parent | 3a17ea77da31ef0b5ab04111583bfcd38f56fcba (diff) | |
| parent | 2da0cac1e9494f34c5a3438e5c4c7e662e1b7445 (diff) | |
Merge branch 'net-page_pool-add-netlink-based-introspection-part1'
Jakub Kicinski says:
====================
net: page_pool: plit the page_pool_params into fast and slow
Small refactoring in prep for adding more page pool params
which won't be needed on the fast path.
v1: https://lore.kernel.org/all/20231024160220.3973311-1-kuba@kernel.org/
RFC: https://lore.kernel.org/all/20230816234303.3786178-1-kuba@kernel.org/
====================
Link: https://lore.kernel.org/r/20231121000048.789613-1-kuba@kernel.org
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Diffstat (limited to 'net/core/page_pool.c')
| -rw-r--r-- | net/core/page_pool.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/net/core/page_pool.c b/net/core/page_pool.c index dec544337236..df2a06d7da52 100644 --- a/net/core/page_pool.c +++ b/net/core/page_pool.c @@ -173,7 +173,8 @@ static int page_pool_init(struct page_pool *pool, { unsigned int ring_qsize = 1024; /* Default */ - memcpy(&pool->p, params, sizeof(pool->p)); + memcpy(&pool->p, ¶ms->fast, sizeof(pool->p)); + memcpy(&pool->slow, ¶ms->slow, sizeof(pool->slow)); /* Validate only known flags were used */ if (pool->p.flags & ~(PP_FLAG_ALL)) @@ -211,6 +212,8 @@ static int page_pool_init(struct page_pool *pool, */ } + pool->has_init_callback = !!pool->slow.init_callback; + #ifdef CONFIG_PAGE_POOL_STATS pool->recycle_stats = alloc_percpu(struct page_pool_recycle_stats); if (!pool->recycle_stats) @@ -388,8 +391,8 @@ static void page_pool_set_pp_info(struct page_pool *pool, * the overhead is negligible. */ page_pool_fragment_page(page, 1); - if (pool->p.init_callback) - pool->p.init_callback(page, pool->p.init_arg); + if (pool->has_init_callback) + pool->slow.init_callback(page, pool->slow.init_arg); } static void page_pool_clear_pp_info(struct page *page) |
