diff options
Diffstat (limited to 'net/core/page_pool.c')
| -rw-r--r-- | net/core/page_pool.c | 10 | 
1 files changed, 5 insertions, 5 deletions
| diff --git a/net/core/page_pool.c b/net/core/page_pool.c index 1a6978427d6c..bd62c01a2ec3 100644 --- a/net/core/page_pool.c +++ b/net/core/page_pool.c @@ -130,9 +130,6 @@ static struct page *page_pool_refill_alloc_cache(struct page_pool *pool)  	pref_nid = numa_mem_id(); /* will be zero like page_to_nid() */  #endif -	/* Slower-path: Get pages from locked ring queue */ -	spin_lock(&r->consumer_lock); -  	/* Refill alloc array, but only if NUMA match */  	do {  		page = __ptr_ring_consume(r); @@ -157,7 +154,6 @@ static struct page *page_pool_refill_alloc_cache(struct page_pool *pool)  	if (likely(pool->alloc.count > 0))  		page = pool->alloc.cache[--pool->alloc.count]; -	spin_unlock(&r->consumer_lock);  	return page;  } @@ -217,6 +213,8 @@ static void page_pool_set_pp_info(struct page_pool *pool,  {  	page->pp = pool;  	page->pp_magic |= PP_SIGNATURE; +	if (pool->p.init_callback) +		pool->p.init_callback(page, pool->p.init_arg);  }  static void page_pool_clear_pp_info(struct page *page) @@ -691,10 +689,12 @@ static void page_pool_release_retry(struct work_struct *wq)  	schedule_delayed_work(&pool->release_dw, DEFER_TIME);  } -void page_pool_use_xdp_mem(struct page_pool *pool, void (*disconnect)(void *)) +void page_pool_use_xdp_mem(struct page_pool *pool, void (*disconnect)(void *), +			   struct xdp_mem_info *mem)  {  	refcount_inc(&pool->user_cnt);  	pool->disconnect = disconnect; +	pool->xdp_mem_id = mem->id;  }  void page_pool_destroy(struct page_pool *pool) |