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>
This commit is contained in:
parent
cd07a8ea0d
commit
f4ab543201
1 changed files with 1 additions and 4 deletions
|
@ -90,10 +90,7 @@ extern void __qdisc_run(struct Qdisc *q);
|
||||||
|
|
||||||
static inline void qdisc_run(struct Qdisc *q)
|
static inline void qdisc_run(struct Qdisc *q)
|
||||||
{
|
{
|
||||||
struct netdev_queue *txq = q->dev_queue;
|
if (!test_and_set_bit(__QDISC_STATE_RUNNING, &q->state))
|
||||||
|
|
||||||
if (!netif_tx_queue_stopped(txq) &&
|
|
||||||
!test_and_set_bit(__QDISC_STATE_RUNNING, &q->state))
|
|
||||||
__qdisc_run(q);
|
__qdisc_run(q);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue