diff options
Diffstat (limited to 'include/net/pkt_sched.h')
-rw-r--r-- | include/net/pkt_sched.h | 11 |
1 files changed, 4 insertions, 7 deletions
diff --git a/include/net/pkt_sched.h b/include/net/pkt_sched.h index 06a442d85186..e4e30052e4e2 100644 --- a/include/net/pkt_sched.h +++ b/include/net/pkt_sched.h | |||
@@ -84,15 +84,12 @@ extern struct qdisc_rate_table *qdisc_get_rtab(struct tc_ratespec *r, | |||
84 | struct nlattr *tab); | 84 | struct nlattr *tab); |
85 | extern void qdisc_put_rtab(struct qdisc_rate_table *tab); | 85 | extern void qdisc_put_rtab(struct qdisc_rate_table *tab); |
86 | 86 | ||
87 | extern void __qdisc_run(struct netdev_queue *txq); | 87 | extern void __qdisc_run(struct Qdisc *q); |
88 | 88 | ||
89 | static inline void qdisc_run(struct netdev_queue *txq) | 89 | static inline void qdisc_run(struct Qdisc *q) |
90 | { | 90 | { |
91 | struct Qdisc *q = txq->qdisc; | 91 | if (!test_and_set_bit(__QDISC_STATE_RUNNING, &q->state)) |
92 | 92 | __qdisc_run(q); | |
93 | if (!netif_tx_queue_stopped(txq) && | ||
94 | !test_and_set_bit(__QDISC_STATE_RUNNING, &q->state)) | ||
95 | __qdisc_run(txq); | ||
96 | } | 93 | } |
97 | 94 | ||
98 | extern int tc_classify_compat(struct sk_buff *skb, struct tcf_proto *tp, | 95 | extern int tc_classify_compat(struct sk_buff *skb, struct tcf_proto *tp, |