diff --git a/net/sched/sch_hfsc.c b/net/sched/sch_hfsc.c index 91132f6871d76ee42fa4e9dc53fcf643b32b779d..f1c7bd29f2cdc3932941c86e529426923484dee1 100644 --- a/net/sched/sch_hfsc.c +++ b/net/sched/sch_hfsc.c @@ -974,10 +974,10 @@ hfsc_adjust_levels(struct hfsc_class *cl) do { level = 0; list_for_each_entry(p, &cl->children, siblings) { - if (p->level > level) - level = p->level; + if (p->level >= level) + level = p->level + 1; } - cl->level = level + 1; + cl->level = level; } while ((cl = cl->cl_parent) != NULL); }