Jesper Dangaard Brouer [off-list ref] writes:
Create new enum qdisc_drop_reason and trace_qdisc_drop tracepoint
for qdisc layer drop diagnostics with direct qdisc context visibility.
The new tracepoint includes qdisc handle, parent, kind (name), and
device information. Existing SKB_DROP_REASON_QDISC_DROP is retained
for backwards compatibility via kfree_skb_reason().
Convert FQ, FQ_CoDel, CoDel, SFB, and pfifo_fast to use the new
infrastructure.
Reported-by: syzbot+ci335f183b8446659a@syzkaller.appspotmail.com
Signed-off-by: Jesper Dangaard Brouer <hawk@kernel.org>
One small nit, see below. With that:
Reviewed-by: Toke Høiland-Jørgensen <redacted>
[...]
quoted hunk ↗ jump to hunk
@@ -37,6 +37,31 @@
const struct Qdisc_ops *default_qdisc_ops = &pfifo_fast_ops;
EXPORT_SYMBOL(default_qdisc_ops);
+void tcf_kfree_skb_list(struct sk_buff *skb, struct Qdisc *q,
+ struct netdev_queue *txq, struct net_device *dev)
+{
+ while (unlikely(skb)) {
Seems a bit odd to have the unlikely() here. I guess it was originally
there because it was an inlined function, but since it isn't anymore
(presumably?), does it really do anything?
-Toke