@@ -636,7 +636,7 @@ struct tc_cls_u32_offload {
static inline bool tc_can_offload(const struct net_device *dev)
{
- return dev->features & NETIF_F_HW_TC;
+ return netdev_feature_test_bit(NETIF_F_HW_TC_BIT, dev->features);
}
static inline bool tc_can_offload_extack(const struct net_device *dev,
@@ -1744,7 +1744,8 @@ static s32 cake_enqueue(struct sk_buff *skb, struct Qdisc *sch,
unsigned int slen = 0, numsegs = 0;
netif_skb_features(skb, &features);
- segs = skb_gso_segment(skb, features & ~NETIF_F_GSO_MASK);
+ netdev_feature_clear_bits(NETIF_F_GSO_MASK, &features);
+ segs = skb_gso_segment(skb, features);
if (IS_ERR_OR_NULL(segs))
return qdisc_drop(skb, sch, to_free);
@@ -416,7 +416,8 @@ static struct sk_buff *netem_segment(struct sk_buff *skb, struct Qdisc *sch,
netdev_features_t features;
netif_skb_features(skb, &features);
- segs = skb_gso_segment(skb, features & ~NETIF_F_GSO_MASK);
+ netdev_feature_clear_bits(NETIF_F_GSO_MASK, &features);
+ segs = skb_gso_segment(skb, features);
if (IS_ERR_OR_NULL(segs)) {
qdisc_drop(skb, sch, to_free);
@@ -458,7 +458,8 @@ static int taprio_enqueue(struct sk_buff *skb, struct Qdisc *sch,
int ret;
netif_skb_features(skb, &features);
- segs = skb_gso_segment(skb, features & ~NETIF_F_GSO_MASK);
+ netdev_feature_clear_bits(NETIF_F_GSO_MASK, &features);
+ segs = skb_gso_segment(skb, features);
if (IS_ERR_OR_NULL(segs))
return qdisc_drop(skb, sch, to_free);
@@ -197,7 +197,8 @@ static int tbf_segment(struct sk_buff *skb, struct Qdisc *sch,
int ret, nb;
netif_skb_features(skb, &features);
- segs = skb_gso_segment(skb, features & ~NETIF_F_GSO_MASK);
+ netdev_feature_clear_bits(NETIF_F_GSO_MASK, &features);
+ segs = skb_gso_segment(skb, features);
if (IS_ERR_OR_NULL(segs))
return qdisc_drop(skb, sch, to_free);
Use netdev_feature_xxx helpers to replace the logical operation for netdev features. Signed-off-by: Jian Shen <shenjian15@huawei.com> --- include/net/pkt_cls.h | 2 +- net/sched/sch_cake.c | 3 ++- net/sched/sch_netem.c | 3 ++- net/sched/sch_taprio.c | 3 ++- net/sched/sch_tbf.c | 3 ++- 5 files changed, 9 insertions(+), 5 deletions(-)