]> Gentwo Git Trees - linux/.git/commitdiff
net: init shinfo->gso_segs from qdisc_pkt_len_init()
authorEric Dumazet <edumazet@google.com>
Fri, 21 Nov 2025 08:32:44 +0000 (08:32 +0000)
committerPaolo Abeni <pabeni@redhat.com>
Tue, 25 Nov 2025 15:10:31 +0000 (16:10 +0100)
Qdisc use shinfo->gso_segs for their pkts stats in bstats_update(),
but this field needs to be initialized for SKB_GSO_DODGY users.

Signed-off-by: Eric Dumazet <edumazet@google.com>
Link: https://patch.msgid.link/20251121083256.674562-3-edumazet@google.com
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
net/core/dev.c

index 46ce6c6107805132b1322128e86634eca91e3340..dba9eef8bd83dda89b5edd870b47373722264f48 100644 (file)
@@ -4071,7 +4071,7 @@ EXPORT_SYMBOL_GPL(validate_xmit_skb_list);
 
 static void qdisc_pkt_len_init(struct sk_buff *skb)
 {
-       const struct skb_shared_info *shinfo = skb_shinfo(skb);
+       struct skb_shared_info *shinfo = skb_shinfo(skb);
 
        qdisc_skb_cb(skb)->pkt_len = skb->len;
 
@@ -4112,6 +4112,7 @@ static void qdisc_pkt_len_init(struct sk_buff *skb)
                        if (payload <= 0)
                                return;
                        gso_segs = DIV_ROUND_UP(payload, shinfo->gso_size);
+                       shinfo->gso_segs = gso_segs;
                }
                qdisc_skb_cb(skb)->pkt_len += (gso_segs - 1) * hdr_len;
        }