pkt_sched: Remove the tx queue state check in qdisc_run()
authorJarek Poplawski <jarkao2@gmail.com>
Tue, 23 Sep 2008 08:05:56 +0000 (01:05 -0700)
committerDavid S. Miller <davem@davemloft.net>
Tue, 23 Sep 2008 08:05:56 +0000 (01:05 -0700)
The current check wrongly uses the state of one (currently the first)
tx queue for all tx queues in case of non-default qdiscs. This check
mainly prevented requeuing loop with __netif_schedule(), but now it's
controlled inside __qdisc_run(), while dequeuing. The wrongness of
this check was first noticed by Herbert Xu.

Signed-off-by: Jarek Poplawski <jarkao2@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/net/pkt_sched.h

index b786a5b..4082f39 100644 (file)
@@ -90,10 +90,7 @@ extern void __qdisc_run(struct Qdisc *q);
 
 static inline void qdisc_run(struct Qdisc *q)
 {
-       struct netdev_queue *txq = q->dev_queue;
-
-       if (!netif_tx_queue_stopped(txq) &&
-           !test_and_set_bit(__QDISC_STATE_RUNNING, &q->state))
+       if (!test_and_set_bit(__QDISC_STATE_RUNNING, &q->state))
                __qdisc_run(q);
 }