aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/igb
diff options
context:
space:
mode:
authorJesse Brandeburg <jesse.brandeburg@intel.com>2009-05-07 11:07:35 +0000
committerDavid S. Miller <davem@davemloft.net>2009-05-07 14:52:32 -0700
commitc2d5ab4973bfaa72cbb677801825ce56c8f69b56 (patch)
tree80a5a2f555285a45c8e38f409aa996953f60fee6 /drivers/net/igb
parentixgbe: Typecase '1' for 64 bit shift (diff)
downloadlinux-dev-c2d5ab4973bfaa72cbb677801825ce56c8f69b56.tar.xz
linux-dev-c2d5ab4973bfaa72cbb677801825ce56c8f69b56.zip
e1000/e1000e/igb/ixgb: don't txhang after link down
after the recent changes to wired drivers to use only netif_carrier_off the driver can have outstanding tx work to complete that will never complete once link is down. Since the intel hardware will hold this tx work forever, the driver notices a tx timeout condition internally and might try to instigate printk and reset of the part with a netif_stop_queue, which doesn't work because link is down. Don't bother arming to tx hang detection when link is down. 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/igb')
-rw-r--r--drivers/net/igb/igb_main.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/net/igb/igb_main.c b/drivers/net/igb/igb_main.c
index 8de8629b07ec..8784c051707e 100644
--- a/drivers/net/igb/igb_main.c
+++ b/drivers/net/igb/igb_main.c
@@ -2711,6 +2711,8 @@ link_up:
* (Do the reset outside of interrupt context). */
adapter->tx_timeout_count++;
schedule_work(&adapter->reset_task);
+ /* return immediately since reset is imminent */
+ return;
}
}