]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
net: ioam6: no longer acquire qdisc spinlock while calling qdisc_qstats_qlen_backlog()
authorEric Dumazet <edumazet@google.com>
Wed, 13 May 2026 08:08:52 +0000 (08:08 +0000)
committerJakub Kicinski <kuba@kernel.org>
Fri, 15 May 2026 00:05:20 +0000 (17:05 -0700)
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>
net/ipv6/ioam6.c

index e963a71858a78c0e53db31d98ab317bbf64ea2a2..943861a5581ee6e9334c29b9daf888a9d2bf1de0 100644 (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);
                }