Subject: Re: [RFC v2 bpf-next 3/7] xsk: add usage of XDP features flags

From: Yonghong Song <[email-masked]>
Date: Tue, 17 Jan 2023 15:37:58 -0800

On 1/17/23 3:34 PM, Lorenzo Bianconi wrote:
>>
>>
>> On 1/14/23 7:54 AM, Lorenzo Bianconi wrote:
>>> From: Marek Majtyka <[email-masked]>
>>>
>>> Change necessary condition check for XSK from ndo functions to
>>> xdp features flags.
>>>
>>> Signed-off-by: Marek Majtyka <[email-masked]>
>>> Signed-off-by: Lorenzo Bianconi <[email-masked]>
>>> ---
>>>    net/xdp/xsk_buff_pool.c | 3 +--
>>>    1 file changed, 1 insertion(+), 2 deletions(-)
>>>
>>> diff --git a/net/xdp/xsk_buff_pool.c b/net/xdp/xsk_buff_pool.c
>>> index ed6c71826d31..2e6fa082142a 100644
>>> --- a/net/xdp/xsk_buff_pool.c
>>> +++ b/net/xdp/xsk_buff_pool.c
>>> @@ -178,8 +178,7 @@ int xp_assign_dev(struct xsk_buff_pool *pool,
>>>    		/* For copy-mode, we are done. */
>>>    		return 0;
>>> -	if (!netdev->netdev_ops->ndo_bpf ||
>>> -	    !netdev->netdev_ops->ndo_xsk_wakeup) {
>>> +	if ((netdev->xdp_features & NETDEV_XDP_ACT_ZC) != NETDEV_XDP_ACT_ZC) {
>>
>> Maybe:
>> 	if (!(netdev->xdp_features & NETDEV_XDP_ACT_ZC))
> 
> I would say it not equivalent since:
> 
> NETDEV_XDP_ACT_ZC = 0x5f
> 
> and we want the device supports all the ZC requested features. Agree?

I missed the fact that NETDEV_XDP_ACT_ZC is not a BIT(...).
So your implementation is correct, sorry for the noise.

> Regards,
> Lorenzo
>> ?
>>>    		err = -EOPNOTSUPP;
>>>    		goto err_unreg_pool;
>>>    	}