]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
net: stmmac: add stmmac_tso_header_size()
authorRussell King (Oracle) <rmk+kernel@armlinux.org.uk>
Wed, 1 Apr 2026 07:21:29 +0000 (08:21 +0100)
committerJakub Kicinski <kuba@kernel.org>
Thu, 2 Apr 2026 18:28:18 +0000 (11:28 -0700)
We will need to compute the size of the protocol headers in two places,
so move this into a separate function.

Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
Link: https://patch.msgid.link/E1w7ptJ-0000000Eat5-2ZlA@rmk-PC.armlinux.org.uk
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c

index 729072622fcbce3c2de55c3d813993e0f82aaa2e..3e7675cfd57e4411b119b683027cdb0bb6713201 100644 (file)
@@ -4373,6 +4373,18 @@ static void stmmac_flush_tx_descriptors(struct stmmac_priv *priv, int queue)
        stmmac_set_queue_tx_tail_ptr(priv, tx_q, queue, tx_q->cur_tx);
 }
 
+static size_t stmmac_tso_header_size(struct sk_buff *skb)
+{
+       size_t size;
+
+       if (skb_shinfo(skb)->gso_type & SKB_GSO_UDP_L4)
+               size = skb_transport_offset(skb) + sizeof(struct udphdr);
+       else
+               size = skb_tcp_all_headers(skb);
+
+       return size;
+}
+
 /**
  *  stmmac_tso_xmit - Tx entry point of the driver for oversized frames (TSO)
  *  @skb : the socket buffer
@@ -4444,13 +4456,11 @@ static netdev_tx_t stmmac_tso_xmit(struct sk_buff *skb, struct net_device *dev)
        first_tx = tx_q->cur_tx;
 
        /* Compute header lengths */
-       if (skb_shinfo(skb)->gso_type & SKB_GSO_UDP_L4) {
-               proto_hdr_len = skb_transport_offset(skb) + sizeof(struct udphdr);
+       proto_hdr_len = stmmac_tso_header_size(skb);
+       if (skb_shinfo(skb)->gso_type & SKB_GSO_UDP_L4)
                hdr = sizeof(struct udphdr);
-       } else {
-               proto_hdr_len = skb_tcp_all_headers(skb);
+       else
                hdr = tcp_hdrlen(skb);
-       }
 
        /* Desc availability based on threshold should be enough safe */
        if (unlikely(stmmac_tx_avail(priv, queue) <