diff --git a/[refs] b/[refs] index a24f84c564de..1d05bbf374e7 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 5e0115e500fe9dd2ca11e6f92db9123204f1327a +refs/heads/master: 83f36f3f35f4f83fa346bfff58a5deabc78370e5 diff --git a/trunk/include/net/pkt_sched.h b/trunk/include/net/pkt_sched.h index 6affcfaa123e..853fe83d9f37 100644 --- a/trunk/include/net/pkt_sched.h +++ b/trunk/include/net/pkt_sched.h @@ -89,7 +89,10 @@ extern void __qdisc_run(struct Qdisc *q); static inline void qdisc_run(struct Qdisc *q) { - if (!test_and_set_bit(__QDISC_STATE_RUNNING, &q->state)) + struct netdev_queue *txq = q->dev_queue; + + if (!netif_tx_queue_stopped(txq) && + !test_and_set_bit(__QDISC_STATE_RUNNING, &q->state)) __qdisc_run(q); }