Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 662a96bd authored by Atsushi Nemoto's avatar Atsushi Nemoto Committed by David S. Miller
Browse files

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: default avatarRalf Roesch <ralf.roesch@rw-gmbh.de>
Signed-off-by: default avatarAtsushi Nemoto <anemo@mba.ocn.ne.jp>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent cac43a1b
Loading
Loading
Loading
Loading
+0 −1
Original line number Diff line number Diff line
@@ -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;
	}