diff options
Diffstat (limited to 'net/core/page_pool.c')
| -rw-r--r-- | net/core/page_pool.c | 10 | 
1 files changed, 4 insertions, 6 deletions
| diff --git a/net/core/page_pool.c b/net/core/page_pool.c index 9b60e4301a44..1a6978427d6c 100644 --- a/net/core/page_pool.c +++ b/net/core/page_pool.c @@ -49,12 +49,6 @@ static int page_pool_init(struct page_pool *pool,  	 * which is the XDP_TX use-case.  	 */  	if (pool->p.flags & PP_FLAG_DMA_MAP) { -		/* DMA-mapping is not supported on 32-bit systems with -		 * 64-bit DMA mapping. -		 */ -		if (sizeof(dma_addr_t) > sizeof(unsigned long)) -			return -EOPNOTSUPP; -  		if ((pool->p.dma_dir != DMA_FROM_DEVICE) &&  		    (pool->p.dma_dir != DMA_BIDIRECTIONAL))  			return -EINVAL; @@ -75,6 +69,10 @@ static int page_pool_init(struct page_pool *pool,  		 */  	} +	if (PAGE_POOL_DMA_USE_PP_FRAG_COUNT && +	    pool->p.flags & PP_FLAG_PAGE_FRAG) +		return -EINVAL; +  	if (ptr_ring_init(&pool->ring, ring_qsize, GFP_KERNEL) < 0)  		return -ENOMEM; |