Skip to content

Commit

Permalink
tc35815: Remove a wrong netif_wake_queue() call which triggers BUG_ON
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Atsushi Nemoto authored and David S. Miller committed Feb 23, 2010
1 parent cac43a1 commit 662a96b
Showing 1 changed file with 0 additions and 1 deletion.
1 change: 0 additions & 1 deletion drivers/net/tc35815.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;
}
Expand Down

0 comments on commit 662a96b

Please sign in to comment.