e1000e: Call e1000e_config_collision_dist() after TCTL has been set
authorSimon Horman <horms@verge.net.au>
Mon, 8 Jun 2009 14:28:36 +0000 (14:28 +0000)
committerDavid S. Miller <davem@davemloft.net>
Tue, 9 Jun 2009 12:25:36 +0000 (05:25 -0700)
e1000e_config_collision_dist() sets tctl, but subsequently tctl is
overwritten.  It seems to me that as things stand the call to
e1000e_config_collision_dist() has no effect and should either be
removed or moved down a little bit.  This kernel patch takes the latter
option.

Signed-off-by: Simon Horman <horms@verge.net.au>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/e1000e/netdev.c

index 9043f1b845feb87f05ed0093940dc040af0be890..677f60490f679d8aa80536a66bc060f479e1a283 100644 (file)
@@ -2256,8 +2256,6 @@ static void e1000_configure_tx(struct e1000_adapter *adapter)
                ew32(TARC(1), tarc);
        }
 
-       e1000e_config_collision_dist(hw);
-
        /* Setup Transmit Descriptor Settings for eop descriptor */
        adapter->txd_cmd = E1000_TXD_CMD_EOP | E1000_TXD_CMD_IFCS;
 
@@ -2270,6 +2268,8 @@ static void e1000_configure_tx(struct e1000_adapter *adapter)
 
        ew32(TCTL, tctl);
 
+       e1000e_config_collision_dist(hw);
+
        adapter->tx_queue_len = adapter->netdev->tx_queue_len;
 }