diff options
author | Jesse Brandeburg <jesse.brandeburg@intel.com> | 2009-05-07 15:07:35 +0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2009-05-08 01:52:32 +0400 |
commit | c2d5ab4973bfaa72cbb677801825ce56c8f69b56 (patch) | |
tree | 80a5a2f555285a45c8e38f409aa996953f60fee6 /drivers/net/e1000e | |
parent | c9c7d2e5a06cd3a26b6be096949e3371ec2aa123 (diff) | |
download | linux-c2d5ab4973bfaa72cbb677801825ce56c8f69b56.tar.xz |
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/e1000e')
-rw-r--r-- | drivers/net/e1000e/netdev.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/net/e1000e/netdev.c b/drivers/net/e1000e/netdev.c index da6b37e05bea..ccaaee0951cf 100644 --- a/drivers/net/e1000e/netdev.c +++ b/drivers/net/e1000e/netdev.c @@ -3651,6 +3651,8 @@ link_up: */ adapter->tx_timeout_count++; schedule_work(&adapter->reset_task); + /* return immediately since reset is imminent */ + return; } } |