diff --git a/net/sched/sch_api.c b/net/sched/sch_api.c index 6684641ea344826c57fdc586e7dfbf157476d186..3dc0acf542454e231de923a7c3287376841b6442 100644 --- a/net/sched/sch_api.c +++ b/net/sched/sch_api.c @@ -2059,7 +2059,8 @@ static int tc_dump_tclass_root(struct Qdisc *root, struct sk_buff *skb, if (tcm->tcm_parent) { q = qdisc_match_from_root(root, TC_H_MAJ(tcm->tcm_parent)); - if (q && tc_dump_tclass_qdisc(q, skb, tcm, cb, t_p, s_t) < 0) + if (q && q != root && + tc_dump_tclass_qdisc(q, skb, tcm, cb, t_p, s_t) < 0) return -1; return 0; }