net: ioam6: no longer acquire qdisc spinlock while calling qdisc_qstats_qlen_backlog()

Recent changes in qdisc_qstats_qlen_backlog() and friends make it safe
to use locklessly.

Signed-off-by: Eric Dumazet <edumazet@google.com>
Reviewed-by: Toke Høiland-Jørgensen <toke@toke.dk>
Link: https://patch.msgid.link/20260513080853.1383975-3-edumazet@google.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
Eric Dumazet 2026-05-13 08:08:52 +00:00 committed by Jakub Kicinski
parent 72a1795999
commit d3f3c8a4d1

View File

@ -800,7 +800,7 @@ static void __ioam6_fill_trace_data(struct sk_buff *skb,
/* queue depth */
if (trace->type.bit6) {
struct netdev_queue *queue;
struct Qdisc *qdisc;
const struct Qdisc *qdisc;
__u32 qlen, backlog;
if (dev->flags & IFF_LOOPBACK ||
@ -810,9 +810,7 @@ static void __ioam6_fill_trace_data(struct sk_buff *skb,
queue = skb_get_tx_queue(dev, skb);
qdisc = rcu_dereference(queue->qdisc);
spin_lock_bh(qdisc_lock(qdisc));
qdisc_qstats_qlen_backlog(qdisc, &qlen, &backlog);
spin_unlock_bh(qdisc_lock(qdisc));
*(__be32 *)data = cpu_to_be32(backlog);
}