From: Jakub Kicinski <kuba@xxxxxxxxxx> Date: Thu, 12 Dec 2024 18:19:44 -0800 > On Wed, 11 Dec 2024 18:26:44 +0100 Alexander Lobakin wrote: >> +#else /* !CONFIG_PAGE_POOL */ >> + struct napi_struct *napi; >> + >> + pp = NULL; >> + napi = napi_by_id(rxq->napi_id); >> + if (likely(napi)) >> + skb = napi_alloc_skb(napi, len); >> + else >> + skb = __netdev_alloc_skb_ip_align(rxq->dev, len, >> + GFP_ATOMIC | __GFP_NOWARN); >> + if (unlikely(!skb)) >> + return NULL; >> +#endif /* !CONFIG_PAGE_POOL */ > > What are the chances of having a driver with AF_XDP support > and without page pool support? I think it's zero :S Right, as CONFIG_BPF_SYSCALL selects PAGE_POOL if NET. I think I wrote this when it wasn't true (before Lorenzo introduced generic page_pools) and then just forgot to change that ._. > Can we kill all the if !CONFIG_PAGE_POOL sections and hide > the entire helper under if CONFIG_PAGE_POLL ? We can. But I think I'd need to introduce a return-NULL wrapper in case of !PAGE_POOL to satisfy the linker, as lots of drivers build their XSk code unconditionally. Thanks, Olek