[PATCH] net/sched: fq: account internal fast-path enqueues against plimit

From: Samuel Moelius

Date: Mon Jun 08 2026 - 20:44:42 EST


sch_fq has an internal fast path that can enqueue packets without
applying the same packet-limit accounting as the normal path. The queue
can grow past the configured plimit through that bypass.

The packet limit must apply to all enqueue paths.

Charge internal fast-path enqueues to the same plimit checks as ordinary
enqueues.

Assisted-by: Codex:gpt-5.5-cyber-preview
Signed-off-by: Samuel Moelius <sam.moelius@xxxxxxxxxxxxxxx>
---
net/sched/sch_fq.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/net/sched/sch_fq.c b/net/sched/sch_fq.c
index f2edcf872981..608ff3ecfb16 100644
--- a/net/sched/sch_fq.c
+++ b/net/sched/sch_fq.c
@@ -548,7 +548,7 @@ static int fq_enqueue(struct sk_buff *skb, struct Qdisc *sch,
u8 band;

band = fq_prio2band(q->prio2band, skb->priority & TC_PRIO_MAX);
- if (unlikely(q->band_pkt_count[band] >= sch->limit)) {
+ if (unlikely(sch->q.qlen >= sch->limit)) {
q->stat_band_drops[band]++;
return qdisc_drop_reason(skb, sch, to_free, QDISC_DROP_BAND_LIMIT);
}
--
2.43.0