Revert 7233d971918e "[netdrv] intel: use core min/max MTU checking" (upstream 91c527a55664), as network stack in 7.4 uses the old ndo_change_mtu method. Index: src/drivers/net/ethernet/intel/i40evf/i40evf_main.c =================================================================== --- src.orig/drivers/net/ethernet/intel/i40evf/i40evf_main.c 2018-02-27 18:31:41.909916904 +0100 +++ src/drivers/net/ethernet/intel/i40evf/i40evf_main.c 2018-02-27 18:34:29.982151356 +0100 @@ -2333,6 +2333,10 @@ static int i40evf_change_mtu(struct net_device *netdev, int new_mtu) { struct i40evf_adapter *adapter = netdev_priv(netdev); + int max_frame = new_mtu + ETH_HLEN + ETH_FCS_LEN; + + if ((new_mtu < 68) || (max_frame > I40E_MAX_RXBUFFER)) + return -EINVAL; netdev->mtu = new_mtu; if (CLIENT_ENABLED(adapter)) { @@ -2453,7 +2457,7 @@ .ndo_set_rx_mode = i40evf_set_rx_mode, .ndo_validate_addr = eth_validate_addr, .ndo_set_mac_address = i40evf_set_mac, - .extended.ndo_change_mtu = i40evf_change_mtu, + .ndo_change_mtu_rh74 = i40evf_change_mtu, .ndo_tx_timeout = i40evf_tx_timeout, .ndo_vlan_rx_add_vid = i40evf_vlan_rx_add_vid, .ndo_vlan_rx_kill_vid = i40evf_vlan_rx_kill_vid, @@ -2734,10 +2738,6 @@ i40evf_set_ethtool_ops(netdev); netdev->watchdog_timeo = 5 * HZ; - /* MTU range: 68 - 9710 */ - netdev->extended->min_mtu = ETH_MIN_MTU; - netdev->extended->max_mtu = I40E_MAX_RXBUFFER - (ETH_HLEN + ETH_FCS_LEN); - if (!is_valid_ether_addr(adapter->hw.mac.addr)) { dev_info(&pdev->dev, "Invalid MAC address %pM, using random\n", adapter->hw.mac.addr);