OSDN Git Service

ipv6: tcp: consistently use MAX_TCP_HEADER
authorEric Dumazet <edumazet@google.com>
Tue, 22 Feb 2022 03:11:15 +0000 (19:11 -0800)
committerJakub Kicinski <kuba@kernel.org>
Wed, 23 Feb 2022 01:27:18 +0000 (17:27 -0800)
All other skbs allocated for TCP tx are using MAX_TCP_HEADER already.

MAX_HEADER can be too small for some cases (like eBPF based encapsulation),
so this can avoid extra pskb_expand_head() in lower stacks.

Signed-off-by: Eric Dumazet <edumazet@google.com>
Reviewed-by: David Ahern <dsahern@kernel.org>
Link: https://lore.kernel.org/r/20220222031115.4005060-1-eric.dumazet@gmail.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
net/ipv6/tcp_ipv6.c

index 91cee80..749de85 100644 (file)
@@ -925,12 +925,11 @@ static void tcp_v6_send_response(const struct sock *sk, struct sk_buff *skb, u32
        }
 #endif
 
-       buff = alloc_skb(MAX_HEADER + sizeof(struct ipv6hdr) + tot_len,
-                        GFP_ATOMIC);
+       buff = alloc_skb(MAX_TCP_HEADER, GFP_ATOMIC);
        if (!buff)
                return;
 
-       skb_reserve(buff, MAX_HEADER + sizeof(struct ipv6hdr) + tot_len);
+       skb_reserve(buff, MAX_TCP_HEADER);
 
        t1 = skb_push(buff, tot_len);
        skb_reset_transport_header(buff);