i40e: clamp jumbo frame size
authorJesse Brandeburg <jesse.brandeburg@intel.com>
Wed, 23 Apr 2014 04:50:05 +0000 (04:50 +0000)
committerJeff Kirsher <jeffrey.t.kirsher@intel.com>
Thu, 5 Jun 2014 08:58:31 +0000 (01:58 -0700)
The driver was allowing the user to set larger size MTU
than the hardware was being configured to support.

The driver was already using VLAN_HLEN when setting the
hardware max receivable frame size, so just add it to the
netdev MTU set entry point as well.

Change-ID: Ie20e2a35d04f8c411253e255bea79ca69aaeaea3
Signed-off-by: Jesse Brandeburg <jesse.brandeburg@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
drivers/net/ethernet/intel/i40e/i40e_main.c

index cef3db44301ea512ca68cc03d8c7a7fcac35d34d..cf67cf45a049c214ee9cdf670f338d7e6220b599 100644 (file)
@@ -1698,7 +1698,7 @@ static void i40e_sync_filters_subtask(struct i40e_pf *pf)
 static int i40e_change_mtu(struct net_device *netdev, int new_mtu)
 {
        struct i40e_netdev_priv *np = netdev_priv(netdev);
-       int max_frame = new_mtu + ETH_HLEN + ETH_FCS_LEN;
+       int max_frame = new_mtu + ETH_HLEN + ETH_FCS_LEN + VLAN_HLEN;
        struct i40e_vsi *vsi = np->vsi;
 
        /* MTU < 68 is an error and causes problems on some kernels */