]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
tcp: use __skb_push() in __tcp_transmit_skb()
authorEric Dumazet <edumazet@google.com>
Tue, 3 Feb 2026 04:42:26 +0000 (04:42 +0000)
committerJakub Kicinski <kuba@kernel.org>
Thu, 5 Feb 2026 04:36:27 +0000 (20:36 -0800)
We trust MAX_TCP_HEADER to be large enough.

Using the inlined version of skb_push() trades 8 bytes
of text for better performance of TCP TX fast path.

$ scripts/bloat-o-meter -t vmlinux.old vmlinux.new
add/remove: 0/0 grow/shrink: 1/0 up/down: 8/0 (8)
Function                                     old     new   delta
__tcp_transmit_skb                          3181    3189      +8
Total: Before=24896035, After=24896043, chg +0.00%

Signed-off-by: Eric Dumazet <edumazet@google.com>
Reviewed-by: Kuniyuki Iwashima <kuniyu@google.com>
Link: https://patch.msgid.link/20260203044226.3489941-1-edumazet@google.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
net/ipv4/tcp_output.c

index f44d60d13b9ff4d59b05be76c4c3001142451df7..384456d88f473c1cff0bc3b266bbccb017a91461 100644 (file)
@@ -1573,7 +1573,7 @@ static int __tcp_transmit_skb(struct sock *sk, struct sk_buff *skb,
         */
        skb->pfmemalloc = 0;
 
-       skb_push(skb, tcp_header_size);
+       __skb_push(skb, tcp_header_size);
        skb_reset_transport_header(skb);
 
        skb_orphan(skb);