aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--net/sched/sch_hfsc.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/net/sched/sch_hfsc.c b/net/sched/sch_hfsc.c
index 6488e6425652..9bdca2e011e9 100644
--- a/net/sched/sch_hfsc.c
+++ b/net/sched/sch_hfsc.c
@@ -1368,6 +1368,7 @@ hfsc_dump_class_stats(struct Qdisc *sch, unsigned long arg,
1368 struct tc_hfsc_stats xstats; 1368 struct tc_hfsc_stats xstats;
1369 1369
1370 cl->qstats.qlen = cl->qdisc->q.qlen; 1370 cl->qstats.qlen = cl->qdisc->q.qlen;
1371 cl->qstats.backlog = cl->qdisc->qstats.backlog;
1371 xstats.level = cl->level; 1372 xstats.level = cl->level;
1372 xstats.period = cl->cl_vtperiod; 1373 xstats.period = cl->cl_vtperiod;
1373 xstats.work = cl->cl_total; 1374 xstats.work = cl->cl_total;
@@ -1561,6 +1562,15 @@ hfsc_dump_qdisc(struct Qdisc *sch, struct sk_buff *skb)
1561 struct hfsc_sched *q = qdisc_priv(sch); 1562 struct hfsc_sched *q = qdisc_priv(sch);
1562 unsigned char *b = skb_tail_pointer(skb); 1563 unsigned char *b = skb_tail_pointer(skb);
1563 struct tc_hfsc_qopt qopt; 1564 struct tc_hfsc_qopt qopt;
1565 struct hfsc_class *cl;
1566 struct hlist_node *n;
1567 unsigned int i;
1568
1569 sch->qstats.backlog = 0;
1570 for (i = 0; i < q->clhash.hashsize; i++) {
1571 hlist_for_each_entry(cl, n, &q->clhash.hash[i], cl_common.hnode)
1572 sch->qstats.backlog += cl->qdisc->qstats.backlog;
1573 }
1564 1574
1565 qopt.defcls = q->defcls; 1575 qopt.defcls = q->defcls;
1566 NLA_PUT(skb, TCA_OPTIONS, sizeof(qopt), &qopt); 1576 NLA_PUT(skb, TCA_OPTIONS, sizeof(qopt), &qopt);