On Wed, Jan 11, 2023 at 08:48:30PM +0800, kernel test robot wrote: > >> drivers/net/ethernet/broadcom/bnxt/bnxt.c:2978:4: error: controlling expression type 'void *' not compatible with any generic association type > page_pool_recycle_direct(rxr->page_pool, data); > ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ I swear I did an allmodconfig build ... don't know how I missed this one. I think I'll make the page_pool_recycle_direct() macro accept void * as well, and treat it as a page. Once we finish the conversion to netmem, this problem will go away. ie this: +++ b/include/net/page_pool.h @@ -485,7 +485,8 @@ static inline void __page_pool_recycle_page_direct(struct page_pool *pool, #define page_pool_recycle_direct(pool, mem) _Generic((mem), \ struct netmem *: __page_pool_recycle_direct(pool, (struct netmem *)mem), \ - struct page *: __page_pool_recycle_page_direct(pool, (struct page *)mem)) + struct page *: __page_pool_recycle_page_direct(pool, (struct page *)mem), \ + void *: __page_pool_recycle_page_direct(pool, (struct page *)mem)) #define PAGE_POOL_DMA_USE_PP_FRAG_COUNT \ (sizeof(dma_addr_t) > sizeof(unsigned long))