Subject: Re: [RFCv4 PATCH net-next] net: extend netdev_features_t

From: Andrew Lunn <[email-masked]>
Date: Tue, 9 Nov 2021 23:32:53 +0100

> -	if ((netdev->features & NETIF_F_HW_TC) > (features & NETIF_F_HW_TC) &&
> +	if ((netdev_active_features_test_bit(netdev, NETIF_F_HW_TC_BIT) >
> +	    netdev_features_test_bit(NETIF_F_NTUPLE_BIT, features)) &&

Using > is interesting.

But where did NETIF_F_NTUPLE_BIT come from?

> -	netdev->features |= NETIF_F_HW_VLAN_CTAG_FILTER |
> -		NETIF_F_HW_VLAN_CTAG_TX | NETIF_F_HW_VLAN_CTAG_RX |
> -		NETIF_F_RXCSUM | NETIF_F_SG | NETIF_F_GSO |
> -		NETIF_F_GRO | NETIF_F_TSO | NETIF_F_TSO6 | NETIF_F_GSO_GRE |
> -		NETIF_F_GSO_GRE_CSUM | NETIF_F_GSO_UDP_TUNNEL |
> -		NETIF_F_SCTP_CRC | NETIF_F_FRAGLIST;
> +	netdev_features_zero(&features);
> +	netdev_features_set_array(hns3_default_features_array,
> +				  ARRAY_SIZE(hns3_default_features_array),
> +				  &features);

The original code is netdev->features |= so it is appending these
bits. Yet the first thing the new code does is zero features?

      Andrew