}
 }
 
+static netdev_features_t e1000_fix_features(struct net_device *netdev,
+                                           netdev_features_t features)
+{
+       struct e1000_adapter *adapter = netdev_priv(netdev);
+       struct e1000_hw *hw = &adapter->hw;
+
+       /* Jumbo frame workaround on 82579 and newer requires CRC be stripped */
+       if ((hw->mac.type >= e1000_pch2lan) && (netdev->mtu > ETH_DATA_LEN))
+               features &= ~NETIF_F_RXFCS;
+
+       return features;
+}
+
 static int e1000_set_features(struct net_device *netdev,
                              netdev_features_t features)
 {
        .ndo_poll_controller    = e1000_netpoll,
 #endif
        .ndo_set_features = e1000_set_features,
+       .ndo_fix_features = e1000_fix_features,
 };
 
 /**