diff options
author | Jesse Brandeburg <jesse.brandeburg@intel.com> | 2009-04-21 14:42:05 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2009-04-22 03:47:54 -0400 |
commit | 4cb9be7ab47820a1fa747569f5f035a5f628c91b (patch) | |
tree | f272447c9bdc5b01578760f1c0f973a183f801b5 /drivers/net/e1000e | |
parent | bf98a82633b97fb638fcee0fae3c0de54d1f7b05 (diff) |
e1000/e1000e/igb/ixgb: do not use netif_wake_queue un-necessarily
It was pointed out that the Intel wired ethernet drivers do not need to
wake the tx queue since netif_carrier_on/off will take care of the qdisc
management in order to guarantee the correct handling of the transmit
routine enable state.
Signed-off-by: Jesse Brandeburg <jesse.brandeburg@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/e1000e')
-rw-r--r-- | drivers/net/e1000e/netdev.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/drivers/net/e1000e/netdev.c b/drivers/net/e1000e/netdev.c index 9048f8e6a8ce..da6b37e05bea 100644 --- a/drivers/net/e1000e/netdev.c +++ b/drivers/net/e1000e/netdev.c | |||
@@ -2826,6 +2826,8 @@ int e1000e_up(struct e1000_adapter *adapter) | |||
2826 | e1000_configure_msix(adapter); | 2826 | e1000_configure_msix(adapter); |
2827 | e1000_irq_enable(adapter); | 2827 | e1000_irq_enable(adapter); |
2828 | 2828 | ||
2829 | netif_wake_queue(adapter->netdev); | ||
2830 | |||
2829 | /* fire a link change interrupt to start the watchdog */ | 2831 | /* fire a link change interrupt to start the watchdog */ |
2830 | ew32(ICS, E1000_ICS_LSC); | 2832 | ew32(ICS, E1000_ICS_LSC); |
2831 | return 0; | 2833 | return 0; |
@@ -2848,7 +2850,7 @@ void e1000e_down(struct e1000_adapter *adapter) | |||
2848 | ew32(RCTL, rctl & ~E1000_RCTL_EN); | 2850 | ew32(RCTL, rctl & ~E1000_RCTL_EN); |
2849 | /* flush and sleep below */ | 2851 | /* flush and sleep below */ |
2850 | 2852 | ||
2851 | netif_tx_stop_all_queues(netdev); | 2853 | netif_stop_queue(netdev); |
2852 | 2854 | ||
2853 | /* disable transmits in the hardware */ | 2855 | /* disable transmits in the hardware */ |
2854 | tctl = er32(TCTL); | 2856 | tctl = er32(TCTL); |
@@ -3130,7 +3132,7 @@ static int e1000_open(struct net_device *netdev) | |||
3130 | 3132 | ||
3131 | e1000_irq_enable(adapter); | 3133 | e1000_irq_enable(adapter); |
3132 | 3134 | ||
3133 | netif_tx_start_all_queues(netdev); | 3135 | netif_start_queue(netdev); |
3134 | 3136 | ||
3135 | /* fire a link status change interrupt to start the watchdog */ | 3137 | /* fire a link status change interrupt to start the watchdog */ |
3136 | ew32(ICS, E1000_ICS_LSC); | 3138 | ew32(ICS, E1000_ICS_LSC); |
@@ -3600,7 +3602,6 @@ static void e1000_watchdog_task(struct work_struct *work) | |||
3600 | phy->ops.cfg_on_link_up(hw); | 3602 | phy->ops.cfg_on_link_up(hw); |
3601 | 3603 | ||
3602 | netif_carrier_on(netdev); | 3604 | netif_carrier_on(netdev); |
3603 | netif_tx_wake_all_queues(netdev); | ||
3604 | 3605 | ||
3605 | if (!test_bit(__E1000_DOWN, &adapter->state)) | 3606 | if (!test_bit(__E1000_DOWN, &adapter->state)) |
3606 | mod_timer(&adapter->phy_info_timer, | 3607 | mod_timer(&adapter->phy_info_timer, |
@@ -3614,7 +3615,6 @@ static void e1000_watchdog_task(struct work_struct *work) | |||
3614 | printk(KERN_INFO "e1000e: %s NIC Link is Down\n", | 3615 | printk(KERN_INFO "e1000e: %s NIC Link is Down\n", |
3615 | adapter->netdev->name); | 3616 | adapter->netdev->name); |
3616 | netif_carrier_off(netdev); | 3617 | netif_carrier_off(netdev); |
3617 | netif_tx_stop_all_queues(netdev); | ||
3618 | if (!test_bit(__E1000_DOWN, &adapter->state)) | 3618 | if (!test_bit(__E1000_DOWN, &adapter->state)) |
3619 | mod_timer(&adapter->phy_info_timer, | 3619 | mod_timer(&adapter->phy_info_timer, |
3620 | round_jiffies(jiffies + 2 * HZ)); | 3620 | round_jiffies(jiffies + 2 * HZ)); |