UPSTREAM: codel: remove sch->q.qlen check before qdisc_tree_reduce_backlog()
[ Upstream commit 342debc12183b51773b3345ba267e9263bdfaaef ] After making all ->qlen_notify() callbacks idempotent, now it is safe to remove the check of qlen!=0 from both fq_codel_dequeue() and codel_qdisc_dequeue(). Bug: 410432097 Reported-by: Gerrard Tai <gerrard.tai@starlabs.sg> Fixes:4b549a2ef4("fq_codel: Fair Queue Codel AQM") Fixes:76e3cc126b("codel: Controlled Delay AQM") Signed-off-by: Cong Wang <xiyou.wangcong@gmail.com> Reviewed-by: Simon Horman <horms@kernel.org> Link: https://patch.msgid.link/20250403211636.166257-1-xiyou.wangcong@gmail.com Acked-by: Jamal Hadi Salim <jhs@mojatatu.com> Signed-off-by: Paolo Abeni <pabeni@redhat.com> Signed-off-by: Sasha Levin <sashal@kernel.org> (cherry picked from commit4d55144b12) Signed-off-by: Lee Jones <joneslee@google.com> Change-Id: I9508beb45995f003612895517ea391ef4beee7b4
This commit is contained in:
committed by
Treehugger Robot
parent
4e4b0bdf85
commit
20adcab29c
@@ -65,10 +65,7 @@ static struct sk_buff *codel_qdisc_dequeue(struct Qdisc *sch)
|
|||||||
&q->stats, qdisc_pkt_len, codel_get_enqueue_time,
|
&q->stats, qdisc_pkt_len, codel_get_enqueue_time,
|
||||||
drop_func, dequeue_func);
|
drop_func, dequeue_func);
|
||||||
|
|
||||||
/* We cant call qdisc_tree_reduce_backlog() if our qlen is 0,
|
if (q->stats.drop_count) {
|
||||||
* or HTB crashes. Defer it for next round.
|
|
||||||
*/
|
|
||||||
if (q->stats.drop_count && sch->q.qlen) {
|
|
||||||
qdisc_tree_reduce_backlog(sch, q->stats.drop_count, q->stats.drop_len);
|
qdisc_tree_reduce_backlog(sch, q->stats.drop_count, q->stats.drop_len);
|
||||||
q->stats.drop_count = 0;
|
q->stats.drop_count = 0;
|
||||||
q->stats.drop_len = 0;
|
q->stats.drop_len = 0;
|
||||||
|
|||||||
@@ -314,10 +314,8 @@ begin:
|
|||||||
}
|
}
|
||||||
qdisc_bstats_update(sch, skb);
|
qdisc_bstats_update(sch, skb);
|
||||||
flow->deficit -= qdisc_pkt_len(skb);
|
flow->deficit -= qdisc_pkt_len(skb);
|
||||||
/* We cant call qdisc_tree_reduce_backlog() if our qlen is 0,
|
|
||||||
* or HTB crashes. Defer it for next round.
|
if (q->cstats.drop_count) {
|
||||||
*/
|
|
||||||
if (q->cstats.drop_count && sch->q.qlen) {
|
|
||||||
qdisc_tree_reduce_backlog(sch, q->cstats.drop_count,
|
qdisc_tree_reduce_backlog(sch, q->cstats.drop_count,
|
||||||
q->cstats.drop_len);
|
q->cstats.drop_len);
|
||||||
q->cstats.drop_count = 0;
|
q->cstats.drop_count = 0;
|
||||||
|
|||||||
Reference in New Issue
Block a user