The following setup can trigger a WARNING in htb_activate due to the condition: !cl->leaf.q->q.qlen tc qdisc del dev lo root tc qdisc add dev lo root handle 1: htb default 1 tc class add dev lo parent 1: classid 1:1 \ htb rate 64bit tc qdisc add dev lo parent 1:1 handle f: \ cake memlimit 1b ping -I lo -f -c1 -s64 -W0.001 127.0.0.1 This is because the low memlimit leads to a low buffer_limit, which causes packet dropping. However, cake_enqueue still returns NET_XMIT_SUCCESS, causing htb_enqueue to call htb_activate with an empty child qdisc. I do not believe return value of NET_XMIT_CN is necessary for packet drops in the case of ack filtering, as that is meant to optimize performance, not to signal congestion. Fixes: 046f6fd5daef ("sched: Add Common Applications Kept Enhanced (cake) qdisc") Signed-off-by: William Liu Reviewed-by: Savino Dicanosa --- net/sched/sch_cake.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/net/sched/sch_cake.c b/net/sched/sch_cake.c index dbcfb948c867..40814449f17a 100644 --- a/net/sched/sch_cake.c +++ b/net/sched/sch_cake.c @@ -1934,6 +1934,9 @@ static s32 cake_enqueue(struct sk_buff *skb, struct Qdisc *sch, cake_drop(sch, to_free); } b->drop_overlimit += dropped; + + if (dropped) + return NET_XMIT_CN; } return NET_XMIT_SUCCESS; } -- 2.43.0