[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20210929155334.12454-62-shenjian15@huawei.com>
Date: Wed, 29 Sep 2021 23:51:48 +0800
From: Jian Shen <shenjian15@...wei.com>
To: <davem@...emloft.net>, <kuba@...nel.org>, <andrew@...n.ch>,
<hkallweit1@...il.com>
CC: <netdev@...r.kernel.org>, <linuxarm@...neuler.org>
Subject: [RFCv2 net-next 061/167] vxlan: use netdev feature helpers
Use netdev_feature_xxx helpers to replace the logical operation
for netdev features.
Signed-off-by: Jian Shen <shenjian15@...wei.com>
---
drivers/net/vxlan.c | 21 ++++++++++++---------
include/net/vxlan.h | 4 ++--
2 files changed, 14 insertions(+), 11 deletions(-)
diff --git a/drivers/net/vxlan.c b/drivers/net/vxlan.c
index 141635a35c28..1978dfc71056 100644
--- a/drivers/net/vxlan.c
+++ b/drivers/net/vxlan.c
@@ -3294,15 +3294,18 @@ static void vxlan_setup(struct net_device *dev)
dev->needs_free_netdev = true;
SET_NETDEV_DEVTYPE(dev, &vxlan_type);
- dev->features |= NETIF_F_LLTX;
- dev->features |= NETIF_F_SG | NETIF_F_HW_CSUM | NETIF_F_FRAGLIST;
- dev->features |= NETIF_F_RXCSUM;
- dev->features |= NETIF_F_GSO_SOFTWARE;
-
- dev->vlan_features = dev->features;
- dev->hw_features |= NETIF_F_SG | NETIF_F_HW_CSUM | NETIF_F_FRAGLIST;
- dev->hw_features |= NETIF_F_RXCSUM;
- dev->hw_features |= NETIF_F_GSO_SOFTWARE;
+ netdev_feature_set_bit(NETIF_F_LLTX_BIT, &dev->features);
+ netdev_feature_set_bits(NETIF_F_SG | NETIF_F_HW_CSUM | NETIF_F_FRAGLIST,
+ &dev->features);
+ netdev_feature_set_bit(NETIF_F_RXCSUM_BIT, &dev->features);
+ netdev_feature_set_bits(NETIF_F_GSO_SOFTWARE, &dev->features);
+
+ netdev_feature_copy(&dev->vlan_features, dev->features);
+ netdev_feature_set_bits(NETIF_F_SG | NETIF_F_HW_CSUM | NETIF_F_FRAGLIST,
+ &dev->hw_features);
+ netdev_feature_set_bit(NETIF_F_RXCSUM_BIT, &dev->hw_features);
+ netdev_feature_set_bits(NETIF_F_GSO_SOFTWARE, &dev->hw_features);
+
netif_keep_dst(dev);
dev->priv_flags |= IFF_NO_QUEUE;
diff --git a/include/net/vxlan.h b/include/net/vxlan.h
index a801e59e2313..dba14ed12c5d 100644
--- a/include/net/vxlan.h
+++ b/include/net/vxlan.h
@@ -322,8 +322,8 @@ static inline void vxlan_features_check(struct sk_buff *skb,
sizeof(struct udphdr) + sizeof(struct vxlanhdr)) ||
(skb->ip_summed != CHECKSUM_NONE &&
!can_checksum_protocol(*features, inner_eth_hdr(skb)->h_proto))))
- *features &= ~(NETIF_F_CSUM_MASK | NETIF_F_GSO_MASK);
-
+ netdev_feature_clear_bits(NETIF_F_CSUM_MASK | NETIF_F_GSO_MASK,
+ features);
}
/* IP header + UDP + VXLAN + Ethernet header */
--
2.33.0
Powered by blists - more mailing lists