[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20210929155334.12454-130-shenjian15@huawei.com>
Date: Wed, 29 Sep 2021 23:52:56 +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 129/167] net: myricom: 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>
---
.../net/ethernet/myricom/myri10ge/myri10ge.c | 31 ++++++++++++-------
1 file changed, 20 insertions(+), 11 deletions(-)
diff --git a/drivers/net/ethernet/myricom/myri10ge/myri10ge.c b/drivers/net/ethernet/myricom/myri10ge/myri10ge.c
index c1a75b08ced7..542cb42f7ea5 100644
--- a/drivers/net/ethernet/myricom/myri10ge/myri10ge.c
+++ b/drivers/net/ethernet/myricom/myri10ge/myri10ge.c
@@ -1281,8 +1281,8 @@ myri10ge_vlan_rx(struct net_device *dev, void *addr, struct sk_buff *skb)
va = addr;
va += MXGEFW_PAD;
veh = (struct vlan_ethhdr *)va;
- if ((dev->features & NETIF_F_HW_VLAN_CTAG_RX) ==
- NETIF_F_HW_VLAN_CTAG_RX &&
+ if (netdev_feature_test_bit(NETIF_F_HW_VLAN_CTAG_RX_BIT,
+ dev->features) &&
veh->h_vlan_proto == htons(ETH_P_8021Q)) {
/* fixup csum if needed */
if (skb->ip_summed == CHECKSUM_COMPLETE) {
@@ -1360,7 +1360,7 @@ myri10ge_rx_done(struct myri10ge_slice_state *ss, int len, __wsum csum)
skb->len = len;
skb->data_len = len;
skb->truesize += len;
- if (dev->features & NETIF_F_RXCSUM) {
+ if (netdev_feature_test_bit(NETIF_F_RXCSUM_BIT, dev->features)) {
skb->ip_summed = CHECKSUM_COMPLETE;
skb->csum = csum;
}
@@ -2889,9 +2889,12 @@ static netdev_tx_t myri10ge_sw_tso(struct sk_buff *skb,
struct sk_buff *segs, *curr, *next;
struct myri10ge_priv *mgp = netdev_priv(dev);
struct myri10ge_slice_state *ss;
+ netdev_features_t tmp;
netdev_tx_t status;
- segs = skb_gso_segment(skb, dev->features & ~NETIF_F_TSO6);
+ netdev_feature_copy(&tmp, dev->features);
+ netdev_feature_clear_bit(NETIF_F_TSO6_BIT, &tmp);
+ segs = skb_gso_segment(skb, tmp);
if (IS_ERR(segs))
goto drop;
@@ -3868,21 +3871,27 @@ static int myri10ge_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
netdev->mtu = myri10ge_initial_mtu;
netdev->netdev_ops = &myri10ge_netdev_ops;
- netdev->hw_features = mgp->features | NETIF_F_RXCSUM;
+ netdev_feature_zero(&netdev->hw_features);
+ netdev_feature_set_bits(mgp->features | NETIF_F_RXCSUM,
+ &netdev->hw_features);
/* fake NETIF_F_HW_VLAN_CTAG_RX for good GRO performance */
- netdev->hw_features |= NETIF_F_HW_VLAN_CTAG_RX;
+ netdev_feature_set_bit(NETIF_F_HW_VLAN_CTAG_RX_BIT,
+ &netdev->hw_features);
- netdev->features = netdev->hw_features;
+ netdev_feature_copy(&netdev->features, netdev->hw_features);
if (dac_enabled)
- netdev->features |= NETIF_F_HIGHDMA;
+ netdev_feature_set_bit(NETIF_F_HIGHDMA_BIT, &netdev->features);
+
+ netdev_feature_set_bits(mgp->features, &netdev->vlan_features);
- netdev->vlan_features |= mgp->features;
if (mgp->fw_ver_tiny < 37)
- netdev->vlan_features &= ~NETIF_F_TSO6;
+ netdev_feature_clear_bit(NETIF_F_TSO6_BIT,
+ &netdev->vlan_features);
if (mgp->fw_ver_tiny < 32)
- netdev->vlan_features &= ~NETIF_F_TSO;
+ netdev_feature_clear_bit(NETIF_F_TSO_BIT,
+ &netdev->vlan_features);
/* make sure we can get an irq, and that MSI can be
* setup (if available). */
--
2.33.0
Powered by blists - more mailing lists