|
@@ -2839,8 +2839,8 @@ static int ixgbe_change_mtu(struct net_device *netdev, int new_mtu)
|
|
struct ixgbe_adapter *adapter = netdev_priv(netdev);
|
|
struct ixgbe_adapter *adapter = netdev_priv(netdev);
|
|
int max_frame = new_mtu + ETH_HLEN + ETH_FCS_LEN;
|
|
int max_frame = new_mtu + ETH_HLEN + ETH_FCS_LEN;
|
|
|
|
|
|
- if ((max_frame < (ETH_ZLEN + ETH_FCS_LEN)) ||
|
|
|
|
- (max_frame > IXGBE_MAX_JUMBO_FRAME_SIZE))
|
|
|
|
|
|
+ /* MTU < 68 is an error and causes problems on some kernels */
|
|
|
|
+ if ((new_mtu < 68) || (max_frame > IXGBE_MAX_JUMBO_FRAME_SIZE))
|
|
return -EINVAL;
|
|
return -EINVAL;
|
|
|
|
|
|
DPRINTK(PROBE, INFO, "changing MTU from %d to %d\n",
|
|
DPRINTK(PROBE, INFO, "changing MTU from %d to %d\n",
|