]> www.infradead.org Git - users/hch/misc.git/commit
sch_hfsc: make hfsc_qlen_notify() idempotent
authorCong Wang <xiyou.wangcong@gmail.com>
Thu, 3 Apr 2025 21:10:25 +0000 (14:10 -0700)
committerPaolo Abeni <pabeni@redhat.com>
Tue, 8 Apr 2025 08:57:49 +0000 (10:57 +0200)
commit51eb3b65544c9efd6a1026889ee5fb5aa62da3bb
tree93874653876710c552ec3b71e35b4986e94636b5
parentdf008598b3a00be02a8051fde89ca0fbc416bd55
sch_hfsc: make hfsc_qlen_notify() idempotent

hfsc_qlen_notify() is not idempotent either and not friendly
to its callers, like fq_codel_dequeue(). Let's make it idempotent
to ease qdisc_tree_reduce_backlog() callers' life:

1. update_vf() decreases cl->cl_nactive, so we can check whether it is
non-zero before calling it.

2. eltree_remove() always removes RB node cl->el_node, but we can use
   RB_EMPTY_NODE() + RB_CLEAR_NODE() to make it safe.

Reported-by: Gerrard Tai <gerrard.tai@starlabs.sg>
Signed-off-by: Cong Wang <xiyou.wangcong@gmail.com>
Reviewed-by: Simon Horman <horms@kernel.org>
Link: https://patch.msgid.link/20250403211033.166059-4-xiyou.wangcong@gmail.com
Acked-by: Jamal Hadi Salim <jhs@mojatatu.com>
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
net/sched/sch_hfsc.c