Message ID | 1396644528-32430-1-git-send-email-vyasevic@redhat.com |
---|---|
State | Awaiting Upstream, archived |
Delegated to: | David Miller |
Headers | show |
On Fri, 2014-04-04 at 16:48 -0400, Vlad Yasevich wrote: > When changing the interface mtu, the driver starts with a value > that doesn't include VLAN_HLEN. Later tests in the driver > set the rx_buffer_len based on the mtu. As a result, when > the user increases the mtu to 1504 (to support 802.1AD for example), > the driver rx_buffer_len does not change and frames longer > the 1522 bytes are rejected as too long. > > Include VLAN_HLEN from the start so that an user mtu greater then > 1500 bytes is correctly reflected in the driver rx_buffer_len. > > CC: e1000-devel@lists.sourceforge.net > CC: Jeff Kirsher <jeffrey.t.kirsher@intel.com> > Signed-off-by: Vlad Yasevich <vyasevic@redhat.com> > --- > drivers/net/ethernet/intel/e1000e/netdev.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) Thanks Vlad, I will add the patch to my queue.
diff --git a/drivers/net/ethernet/intel/e1000e/netdev.c b/drivers/net/ethernet/intel/e1000e/netdev.c index 6d91933..492a136 100644 --- a/drivers/net/ethernet/intel/e1000e/netdev.c +++ b/drivers/net/ethernet/intel/e1000e/netdev.c @@ -5654,7 +5654,7 @@ struct rtnl_link_stats64 *e1000e_get_stats64(struct net_device *netdev, static int e1000_change_mtu(struct net_device *netdev, int new_mtu) { struct e1000_adapter *adapter = netdev_priv(netdev); - int max_frame = new_mtu + ETH_HLEN + ETH_FCS_LEN; + int max_frame = new_mtu + VLAN_HLEN + ETH_HLEN + ETH_FCS_LEN; /* Jumbo frame support */ if ((max_frame > ETH_FRAME_LEN + ETH_FCS_LEN) &&
When changing the interface mtu, the driver starts with a value that doesn't include VLAN_HLEN. Later tests in the driver set the rx_buffer_len based on the mtu. As a result, when the user increases the mtu to 1504 (to support 802.1AD for example), the driver rx_buffer_len does not change and frames longer the 1522 bytes are rejected as too long. Include VLAN_HLEN from the start so that an user mtu greater then 1500 bytes is correctly reflected in the driver rx_buffer_len. CC: e1000-devel@lists.sourceforge.net CC: Jeff Kirsher <jeffrey.t.kirsher@intel.com> Signed-off-by: Vlad Yasevich <vyasevic@redhat.com> --- drivers/net/ethernet/intel/e1000e/netdev.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)