Toke Høiland-Jørgensen wrote: > Add a new callback function to page_pool that, if set, will be called every > time a new page is allocated. This will be used from bpf_test_run() to > initialise the page data with the data provided by userspace when running > XDP programs with redirect turned on. > > Signed-off-by: Toke Høiland-Jørgensen <toke@xxxxxxxxxx> > --- LGTM. Acked-by: John Fastabend <john.fastabend@xxxxxxxxx> > include/net/page_pool.h | 2 ++ > net/core/page_pool.c | 2 ++ > 2 files changed, 4 insertions(+) > > diff --git a/include/net/page_pool.h b/include/net/page_pool.h > index 3855f069627f..a71201854c41 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 { > diff --git a/net/core/page_pool.c b/net/core/page_pool.c > index 9b60e4301a44..fb5a90b9d574 100644 > --- a/net/core/page_pool.c > +++ b/net/core/page_pool.c > @@ -219,6 +219,8 @@ static void page_pool_set_pp_info(struct page_pool *pool, > { > page->pp = pool; > page->pp_magic |= PP_SIGNATURE; > + if (unlikely(pool->p.init_callback)) > + pool->p.init_callback(page, pool->p.init_arg); already in slow path right? So unlikely in a slow path should not have any impact on performance is my reading. > } > > static void page_pool_clear_pp_info(struct page *page) > -- > 2.34.0 >