summaryrefslogtreecommitdiffstats
path: root/drivers/net/forcedeth.c
diff options
context:
space:
mode:
authorAyaz Abdulla <aabdulla@nvidia.com>2007-03-23 05:50:02 -0500
committerJeff Garzik <jeff@garzik.org>2007-03-28 02:18:51 -0400
commit3ba4d093fe8a26f5f2da94411bf8732fa6e9da86 (patch)
treecda2fbf167d31a8ad5720eeeacfa2c040a3a51a9 /drivers/net/forcedeth.c
parentfcc5f2665c81e087fb95143325ed769a41128d50 (diff)
downloadlinux-3ba4d093fe8a26f5f2da94411bf8732fa6e9da86.tar.gz
linux-3ba4d093fe8a26f5f2da94411bf8732fa6e9da86.tar.bz2
linux-3ba4d093fe8a26f5f2da94411bf8732fa6e9da86.zip
forcedeth: fix tx timeout
The tx timeout routine was waking the tx queue conditionally. However, it must call it unconditionally since the dev_watchdog has halted the tx queue before calling the timeout function. Signed-Off-By: Ayaz Abdulla <aabdulla@nvidia.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
Diffstat (limited to 'drivers/net/forcedeth.c')
-rw-r--r--drivers/net/forcedeth.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/net/forcedeth.c b/drivers/net/forcedeth.c
index ae4e6f9375c8..d04214e4e581 100644
--- a/drivers/net/forcedeth.c
+++ b/drivers/net/forcedeth.c
@@ -2050,9 +2050,10 @@ static void nv_tx_timeout(struct net_device *dev)
nv_drain_tx(dev);
nv_init_tx(dev);
setup_hw_rings(dev, NV_SETUP_TX_RING);
- netif_wake_queue(dev);
}
+ netif_wake_queue(dev);
+
/* 4) restart tx engine */
nv_start_tx(dev);
spin_unlock_irq(&np->lock);