net: Make RX-FCS and HW GRO mutually exclusive
authorGal Pressman <galp@mellanox.com>
Mon, 12 Mar 2018 09:48:49 +0000 (11:48 +0200)
committerDavid S. Miller <davem@davemloft.net>
Mon, 12 Mar 2018 15:15:16 +0000 (11:15 -0400)
Same as LRO, hardware GRO cannot be enabled with RX-FCS.
When both are requested, hardware GRO will be dropped.

Suggested-by: David Miller <davem@davemloft.net>
Signed-off-by: Gal Pressman <galp@mellanox.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/core/dev.c

index 259abb1515d047649cfe77cc5b9c7845c0c8be3d..12a9aad0b057c913fc9ba6e098ef131bf8bd47ae 100644 (file)
@@ -7549,10 +7549,17 @@ static netdev_features_t netdev_fix_features(struct net_device *dev,
                }
        }
 
-       /* LRO feature cannot be combined with RX-FCS */
-       if ((features & NETIF_F_LRO) && (features & NETIF_F_RXFCS)) {
-               netdev_dbg(dev, "Dropping LRO feature since RX-FCS is requested.\n");
-               features &= ~NETIF_F_LRO;
+       /* LRO/HW-GRO features cannot be combined with RX-FCS */
+       if (features & NETIF_F_RXFCS) {
+               if (features & NETIF_F_LRO) {
+                       netdev_dbg(dev, "Dropping LRO feature since RX-FCS is requested.\n");
+                       features &= ~NETIF_F_LRO;
+               }
+
+               if (features & NETIF_F_GRO_HW) {
+                       netdev_dbg(dev, "Dropping HW-GRO feature since RX-FCS is requested.\n");
+                       features &= ~NETIF_F_GRO_HW;
+               }
        }
 
        return features;