cxgb4/cxgb4vf: Fix up netdev->hw_features
authorArjun Vynipadath <arjun@chelsio.com>
Thu, 28 Feb 2019 09:36:54 +0000 (15:06 +0530)
committerDavid S. Miller <davem@davemloft.net>
Thu, 28 Feb 2019 18:25:09 +0000 (10:25 -0800)
GRO is done by cxgb4/cxgb4vf. Hence set NETIF_F_GRO flag for
both cxgb4/cxgb4vf.
Cleaned up VLAN netdev features in cxgb4vf. Also fixed
NETIF_F_HIGHDMA being set unconditionally for vlan netdev
features.

Signed-off-by: Arjun Vynipadath <arjun@chelsio.com>
Signed-off-by: Vishal Kulkarni <vishal@chelsio.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c
drivers/net/ethernet/chelsio/cxgb4vf/cxgb4vf_main.c

index bcbac247a73d26c29515d85dfc0347927f26ae1e..200b160345444274aa5c56d22bf4628c06c11506 100644 (file)
@@ -5303,7 +5303,7 @@ static void free_some_resources(struct adapter *adapter)
 
 #define TSO_FLAGS (NETIF_F_TSO | NETIF_F_TSO6 | NETIF_F_TSO_ECN)
 #define VLAN_FEAT (NETIF_F_SG | NETIF_F_IP_CSUM | TSO_FLAGS | \
-                  NETIF_F_IPV6_CSUM | NETIF_F_HIGHDMA)
+                  NETIF_F_GRO | NETIF_F_IPV6_CSUM | NETIF_F_HIGHDMA)
 #define SEGMENT_SIZE 128
 
 static int t4_get_chip_type(struct adapter *adap, int ver)
@@ -5710,7 +5710,7 @@ static int init_one(struct pci_dev *pdev, const struct pci_device_id *ent)
 
                netdev->hw_features = NETIF_F_SG | TSO_FLAGS |
                        NETIF_F_IP_CSUM | NETIF_F_IPV6_CSUM |
-                       NETIF_F_RXCSUM | NETIF_F_RXHASH |
+                       NETIF_F_RXCSUM | NETIF_F_RXHASH | NETIF_F_GRO |
                        NETIF_F_HW_VLAN_CTAG_TX | NETIF_F_HW_VLAN_CTAG_RX |
                        NETIF_F_HW_TC;
 
index 3300b69a42b319801d0289e7c56ae71f7c5a9067..bcd38ea674ae6445f6235e5c5fd3c6e5d23c3f88 100644 (file)
@@ -1932,6 +1932,8 @@ static void cxgb4vf_get_wol(struct net_device *dev,
  * TCP Segmentation Offload flags which we support.
  */
 #define TSO_FLAGS (NETIF_F_TSO | NETIF_F_TSO6 | NETIF_F_TSO_ECN)
+#define VLAN_FEAT (NETIF_F_SG | NETIF_F_IP_CSUM | TSO_FLAGS | \
+                  NETIF_F_GRO | NETIF_F_IPV6_CSUM | NETIF_F_HIGHDMA)
 
 static const struct ethtool_ops cxgb4vf_ethtool_ops = {
        .get_link_ksettings     = cxgb4vf_get_link_ksettings,
@@ -3141,16 +3143,13 @@ static int cxgb4vf_pci_probe(struct pci_dev *pdev,
                netif_carrier_off(netdev);
                netdev->irq = pdev->irq;
 
-               netdev->hw_features = NETIF_F_SG | TSO_FLAGS |
-                       NETIF_F_IP_CSUM | NETIF_F_IPV6_CSUM |
-                       NETIF_F_HW_VLAN_CTAG_RX | NETIF_F_RXCSUM;
-               netdev->vlan_features = NETIF_F_SG | TSO_FLAGS |
-                       NETIF_F_IP_CSUM | NETIF_F_IPV6_CSUM |
-                       NETIF_F_HIGHDMA;
-               netdev->features = netdev->hw_features |
-                                  NETIF_F_HW_VLAN_CTAG_TX;
+               netdev->hw_features = NETIF_F_SG | TSO_FLAGS | NETIF_F_GRO |
+                       NETIF_F_IP_CSUM | NETIF_F_IPV6_CSUM | NETIF_F_RXCSUM |
+                       NETIF_F_HW_VLAN_CTAG_TX | NETIF_F_HW_VLAN_CTAG_RX;
+               netdev->features = netdev->hw_features;
                if (pci_using_dac)
                        netdev->features |= NETIF_F_HIGHDMA;
+               netdev->vlan_features = netdev->features & VLAN_FEAT;
 
                netdev->priv_flags |= IFF_UNICAST_FLT;
                netdev->min_mtu = 81;