[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <CAPpSM+SQzdQ4VHsW2Fw=wTuBs_yw4NCWrps88=EfoSRAVG1W8A@mail.gmail.com>
Date: Fri, 28 Nov 2025 11:49:21 -0700
From: Xiang Mei <xmei5@....edu>
To: Toke Høiland-Jørgensen <toke@...e.dk>
Cc: security@...nel.org, netdev@...r.kernel.org, xiyou.wangcong@...il.com,
cake@...ts.bufferbloat.net, bestswngs@...il.com
Subject: Re: [PATCH net v8 1/2] net/sched: sch_cake: Fix incorrect qlen
reduction in cake_drop
Thanks for the tip. I’ll retain the existing tags.
On Fri, Nov 28, 2025 at 2:16 AM Toke Høiland-Jørgensen <toke@...e.dk> wrote:
>
> Xiang Mei <xmei5@....edu> writes:
>
> > In cake_drop(), qdisc_tree_reduce_backlog() is used to update the qlen
> > and backlog of the qdisc hierarchy. Its caller, cake_enqueue(), assumes
> > that the parent qdisc will enqueue the current packet. However, this
> > assumption breaks when cake_enqueue() returns NET_XMIT_CN: the parent
> > qdisc stops enqueuing current packet, leaving the tree qlen/backlog
> > accounting inconsistent. This mismatch can lead to a NULL dereference
> > (e.g., when the parent Qdisc is qfq_qdisc).
> >
> > This patch computes the qlen/backlog delta in a more robust way by
> > observing the difference before and after the series of cake_drop()
> > calls, and then compensates the qdisc tree accounting if cake_enqueue()
> > returns NET_XMIT_CN.
> >
> > To ensure correct compensation when ACK thinning is enabled, a new
> > variable is introduced to keep qlen unchanged.
> >
> > Fixes: 15de71d06a40 ("net/sched: Make cake_enqueue return NET_XMIT_CN when past buffer_limit")
> > Signed-off-by: Xiang Mei <xmei5@....edu>
>
> Please retain tags when reposting...
>
> Reviewed-by: Toke Høiland-Jørgensen <toke@...e.dk>
Powered by blists - more mailing lists