summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAtsushi Nemoto <anemo@mba.ocn.ne.jp>2010-02-19 06:13:58 +0100
committerDavid S. Miller <davem@davemloft.net>2010-02-23 10:25:01 +0100
commit662a96bd6f020782dfbdc0d0bd177c7dbb556687 (patch)
tree92216bd288f7a79c556832ef404f0ad03231ead6
parentcdc_ether: new PID for Ericsson C3607w to the whitelist (resubmit) (diff)
downloadlinux-662a96bd6f020782dfbdc0d0bd177c7dbb556687.tar.xz
linux-662a96bd6f020782dfbdc0d0bd177c7dbb556687.zip
tc35815: Remove a wrong netif_wake_queue() call which triggers BUG_ON
The netif_wake_queue() is called correctly (i.e. only on !txfull condition) from txdone routine. So Unconditional call to the netif_wake_queue() here is wrong. This might cause calling of start_xmit routine on txfull state and trigger BUG_ON. This bug does not happen when NAPI disabled. After txdone there must be at least one free tx slot. But with NAPI, this is not true anymore and the BUG_ON can hits on heavy load. In this driver NAPI was enabled on 2.6.33-rc1 so this is regression from 2.6.32 kernel. Reported-by: Ralf Roesch <ralf.roesch@rw-gmbh.de> Signed-off-by: Atsushi Nemoto <anemo@mba.ocn.ne.jp> Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r--drivers/net/tc35815.c1
1 files changed, 0 insertions, 1 deletions
diff --git a/drivers/net/tc35815.c b/drivers/net/tc35815.c
index 75a669d48e5e..d71c1976072e 100644
--- a/drivers/net/tc35815.c
+++ b/drivers/net/tc35815.c
@@ -1437,7 +1437,6 @@ static int tc35815_do_interrupt(struct net_device *dev, u32 status, int limit)
/* Transmit complete. */
lp->lstats.tx_ints++;
tc35815_txdone(dev);
- netif_wake_queue(dev);
if (ret < 0)
ret = 0;
}