diff options
Diffstat (limited to 'include/net')
-rw-r--r-- | include/net/pkt_sched.h | 11 | ||||
-rw-r--r-- | include/net/sch_generic.h | 2 |
2 files changed, 6 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, |
diff --git a/include/net/sch_generic.h b/include/net/sch_generic.h index 92417825d387..3cc4b5cd8c6a 100644 --- a/include/net/sch_generic.h +++ b/include/net/sch_generic.h | |||
@@ -26,6 +26,7 @@ struct qdisc_rate_table | |||
26 | enum qdisc_state_t | 26 | enum qdisc_state_t |
27 | { | 27 | { |
28 | __QDISC_STATE_RUNNING, | 28 | __QDISC_STATE_RUNNING, |
29 | __QDISC_STATE_SCHED, | ||
29 | }; | 30 | }; |
30 | 31 | ||
31 | struct Qdisc | 32 | struct Qdisc |
@@ -45,6 +46,7 @@ struct Qdisc | |||
45 | struct sk_buff *gso_skb; | 46 | struct sk_buff *gso_skb; |
46 | struct sk_buff_head q; | 47 | struct sk_buff_head q; |
47 | struct netdev_queue *dev_queue; | 48 | struct netdev_queue *dev_queue; |
49 | struct Qdisc *next_sched; | ||
48 | struct list_head list; | 50 | struct list_head list; |
49 | 51 | ||
50 | struct gnet_stats_basic bstats; | 52 | struct gnet_stats_basic bstats; |