
在 2021/11/10 6:32, Andrew Lunn 写道:
- 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. will use
if (netdev_active_features_test_bit(netdev, NETIF_F_HW_TC_BIT) && !netdev_features_test_bit(netdev, NETIF_F_HW_TC_BIT)) instead.
But where did NETIF_F_NTUPLE_BIT come from? Thanks for catching this!
- 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 .
The features is a local variable, the change for netdev->active_features is later, by calling netdev_active_features_direct_or(netdev, features); By the way, have you reveiwed the rest of patch ? Is there anything else need to rework ? I wonder whether to go ahead. Thanks! Jian