aboutsummaryrefslogtreecommitdiffstats
path: root/net/sched/sch_htb.c
diff options
context:
space:
mode:
authorJarek Poplawski <jarkao2@gmail.com>2009-02-01 04:12:42 -0500
committerDavid S. Miller <davem@davemloft.net>2009-02-01 04:12:42 -0500
commitb00355db3f88d96810a60011a30cfb2c3469409d (patch)
tree43331c769665e619892d8f97a38ce1d12b3a6363 /net/sched/sch_htb.c
parenteefef1cf7653cd4e0aaf743c00ae8345086cdc01 (diff)
pkt_sched: sch_hfsc: sch_htb: Add non-work-conserving warning handler.
Patrick McHardy <kaber@trash.net> suggested: > How about making this flag and the warning message (in a out-of-line > function) globally available? Other qdiscs (f.i. HFSC) can't deal with > inner non-work-conserving qdiscs as well. This patch uses qdisc->flags field of "suspected" child qdisc. Signed-off-by: Jarek Poplawski <jarkao2@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/sched/sch_htb.c')
-rw-r--r--net/sched/sch_htb.c9
1 files changed, 1 insertions, 8 deletions
diff --git a/net/sched/sch_htb.c b/net/sched/sch_htb.c
index 2f0f0b04d3fb..77ff510ef8ac 100644
--- a/net/sched/sch_htb.c
+++ b/net/sched/sch_htb.c
@@ -114,8 +114,6 @@ struct htb_class {
114 struct tcf_proto *filter_list; 114 struct tcf_proto *filter_list;
115 int filter_cnt; 115 int filter_cnt;
116 116
117 int warned; /* only one warning about non work conserving .. */
118
119 /* token bucket parameters */ 117 /* token bucket parameters */
120 struct qdisc_rate_table *rate; /* rate table of the class itself */ 118 struct qdisc_rate_table *rate; /* rate table of the class itself */
121 struct qdisc_rate_table *ceil; /* ceiling rate (limits borrows too) */ 119 struct qdisc_rate_table *ceil; /* ceiling rate (limits borrows too) */
@@ -809,13 +807,8 @@ next:
809 skb = cl->un.leaf.q->dequeue(cl->un.leaf.q); 807 skb = cl->un.leaf.q->dequeue(cl->un.leaf.q);
810 if (likely(skb != NULL)) 808 if (likely(skb != NULL))
811 break; 809 break;
812 if (!cl->warned) {
813 printk(KERN_WARNING
814 "htb: class %X isn't work conserving ?!\n",
815 cl->common.classid);
816 cl->warned = 1;
817 }
818 810
811 qdisc_warn_nonwc("htb", cl->un.leaf.q);
819 htb_next_rb_node((level ? cl->parent->un.inner.ptr : q-> 812 htb_next_rb_node((level ? cl->parent->un.inner.ptr : q->
820 ptr[0]) + prio); 813 ptr[0]) + prio);
821 cl = htb_lookup_leaf(q->row[level] + prio, prio, 814 cl = htb_lookup_leaf(q->row[level] + prio, prio,