diff options
Diffstat (limited to 'include/net/pkt_sched.h')
-rw-r--r-- | include/net/pkt_sched.h | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/include/net/pkt_sched.h b/include/net/pkt_sched.h index 6affcfaa123e..b786a5b09253 100644 --- a/include/net/pkt_sched.h +++ b/include/net/pkt_sched.h | |||
@@ -78,6 +78,7 @@ extern struct Qdisc *fifo_create_dflt(struct Qdisc *sch, struct Qdisc_ops *ops, | |||
78 | 78 | ||
79 | extern int register_qdisc(struct Qdisc_ops *qops); | 79 | extern int register_qdisc(struct Qdisc_ops *qops); |
80 | extern int unregister_qdisc(struct Qdisc_ops *qops); | 80 | extern int unregister_qdisc(struct Qdisc_ops *qops); |
81 | extern void qdisc_list_del(struct Qdisc *q); | ||
81 | extern struct Qdisc *qdisc_lookup(struct net_device *dev, u32 handle); | 82 | extern struct Qdisc *qdisc_lookup(struct net_device *dev, u32 handle); |
82 | extern struct Qdisc *qdisc_lookup_class(struct net_device *dev, u32 handle); | 83 | extern struct Qdisc *qdisc_lookup_class(struct net_device *dev, u32 handle); |
83 | extern struct qdisc_rate_table *qdisc_get_rtab(struct tc_ratespec *r, | 84 | extern struct qdisc_rate_table *qdisc_get_rtab(struct tc_ratespec *r, |
@@ -89,7 +90,10 @@ extern void __qdisc_run(struct Qdisc *q); | |||
89 | 90 | ||
90 | static inline void qdisc_run(struct Qdisc *q) | 91 | static inline void qdisc_run(struct Qdisc *q) |
91 | { | 92 | { |
92 | if (!test_and_set_bit(__QDISC_STATE_RUNNING, &q->state)) | 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 | __qdisc_run(q); | 97 | __qdisc_run(q); |
94 | } | 98 | } |
95 | 99 | ||