Commit f4ab543201992fe499bef5c406e09f23aa97b4d5

Authored by Jarek Poplawski
Committed by David S. Miller
1 parent cd07a8ea0d

pkt_sched: Remove the tx queue state check in qdisc_run()

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>

Showing 1 changed file with 1 additions and 4 deletions Side-by-side Diff

include/net/pkt_sched.h
... ... @@ -90,10 +90,7 @@
90 90  
91 91 static inline void qdisc_run(struct Qdisc *q)
92 92 {
93   - struct netdev_queue *txq = q->dev_queue;
94   -
95   - if (!netif_tx_queue_stopped(txq) &&
96   - !test_and_set_bit(__QDISC_STATE_RUNNING, &q->state))
  93 + if (!test_and_set_bit(__QDISC_STATE_RUNNING, &q->state))
97 94 __qdisc_run(q);
98 95 }
99 96