e1000e: flow control thresholds not correct when changing mtu
When changing MTU, save it off prior to resetting otherwise the flow control thresholds may be miscalculated. Signed-off-by: Bruce Allan <bruce.w.allan@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
committed by
David S. Miller
parent
4c86e0b945
commit
610c992884
@@ -4305,8 +4305,10 @@ static int e1000_change_mtu(struct net_device *netdev, int new_mtu)
|
|||||||
|
|
||||||
while (test_and_set_bit(__E1000_RESETTING, &adapter->state))
|
while (test_and_set_bit(__E1000_RESETTING, &adapter->state))
|
||||||
msleep(1);
|
msleep(1);
|
||||||
/* e1000e_down has a dependency on max_frame_size */
|
/* e1000e_down -> e1000e_reset dependent on max_frame_size & mtu */
|
||||||
adapter->max_frame_size = max_frame;
|
adapter->max_frame_size = max_frame;
|
||||||
|
e_info("changing MTU from %d to %d\n", netdev->mtu, new_mtu);
|
||||||
|
netdev->mtu = new_mtu;
|
||||||
if (netif_running(netdev))
|
if (netif_running(netdev))
|
||||||
e1000e_down(adapter);
|
e1000e_down(adapter);
|
||||||
|
|
||||||
@@ -4336,9 +4338,6 @@ static int e1000_change_mtu(struct net_device *netdev, int new_mtu)
|
|||||||
adapter->rx_buffer_len = ETH_FRAME_LEN + VLAN_HLEN
|
adapter->rx_buffer_len = ETH_FRAME_LEN + VLAN_HLEN
|
||||||
+ ETH_FCS_LEN;
|
+ ETH_FCS_LEN;
|
||||||
|
|
||||||
e_info("changing MTU from %d to %d\n", netdev->mtu, new_mtu);
|
|
||||||
netdev->mtu = new_mtu;
|
|
||||||
|
|
||||||
if (netif_running(netdev))
|
if (netif_running(netdev))
|
||||||
e1000e_up(adapter);
|
e1000e_up(adapter);
|
||||||
else
|
else
|
||||||
|
Reference in New Issue
Block a user