]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
tcp: move inet6_csk_update_pmtu() to tcp_ipv6.c
authorEric Dumazet <edumazet@google.com>
Mon, 23 Feb 2026 15:30:47 +0000 (15:30 +0000)
committerJakub Kicinski <kuba@kernel.org>
Wed, 25 Feb 2026 01:47:27 +0000 (17:47 -0800)
This function is only called from tcp_v6_mtu_reduced() and can be
(auto)inlined by the compiler.

Note that inet6_csk_route_socket() is no longer (auto)inlined,
which is a good thing as it is slow path.

$ scripts/bloat-o-meter -t vmlinux.0 vmlinux.1

add/remove: 0/2 grow/shrink: 2/0 up/down: 93/-129 (-36)
Function                                     old     new   delta
tcp_v6_mtu_reduced                           139     228     +89
inet6_csk_route_socket                       486     490      +4
__pfx_inet6_csk_update_pmtu                   16       -     -16
inet6_csk_update_pmtu                        113       -    -113
Total: Before=25076512, After=25076476, chg -0.00%

Signed-off-by: Eric Dumazet <edumazet@google.com>
Reviewed-by: Kuniyuki Iwashima <kuniyu@google.com>
Link: https://patch.msgid.link/20260223153047.886683-1-edumazet@google.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
include/net/inet6_connection_sock.h
net/ipv6/inet6_connection_sock.c
net/ipv6/tcp_ipv6.c

index ece8dabd209a5b2fb42ec88b9acbc81c01b4174e..b814e1acc512186108f500702836d98647cbd165 100644 (file)
@@ -18,6 +18,9 @@ struct sk_buff;
 struct sock;
 struct sockaddr;
 
+struct dst_entry *inet6_csk_route_socket(struct sock *sk,
+                                        struct flowi6 *fl6);
+
 struct dst_entry *inet6_csk_route_req(const struct sock *sk,
                                      struct dst_entry *dst,
                                      struct flowi6 *fl6,
@@ -25,5 +28,4 @@ struct dst_entry *inet6_csk_route_req(const struct sock *sk,
 
 int inet6_csk_xmit(struct sock *sk, struct sk_buff *skb, struct flowi *fl);
 
-struct dst_entry *inet6_csk_update_pmtu(struct sock *sk, u32 mtu);
 #endif /* _INET6_CONNECTION_SOCK_H */
index 11fc2f7de2fe981ddb48dc008bf7fd4ae1e4e2f6..37534e1168992c44e1400dacab87e79d04c64a41 100644 (file)
@@ -56,8 +56,8 @@ struct dst_entry *inet6_csk_route_req(const struct sock *sk,
        return dst;
 }
 
-static struct dst_entry *inet6_csk_route_socket(struct sock *sk,
-                                               struct flowi6 *fl6)
+struct dst_entry *inet6_csk_route_socket(struct sock *sk,
+                                        struct flowi6 *fl6)
 {
        struct inet_sock *inet = inet_sk(sk);
        struct ipv6_pinfo *np = inet6_sk(sk);
@@ -118,18 +118,3 @@ int inet6_csk_xmit(struct sock *sk, struct sk_buff *skb, struct flowi *fl_unused
        return res;
 }
 EXPORT_SYMBOL_GPL(inet6_csk_xmit);
-
-struct dst_entry *inet6_csk_update_pmtu(struct sock *sk, u32 mtu)
-{
-       struct flowi6 *fl6 = &inet_sk(sk)->cork.fl.u.ip6;
-       struct dst_entry *dst;
-
-       dst = inet6_csk_route_socket(sk, fl6);
-
-       if (IS_ERR(dst))
-               return NULL;
-       dst->ops->update_pmtu(dst, sk, NULL, mtu, true);
-
-       dst = inet6_csk_route_socket(sk, fl6);
-       return IS_ERR(dst) ? NULL : dst;
-}
index f17da56b449ef30675469e033e0173059791443f..07e07afb1ff10728b6d6767edcbd286c367fa2e6 100644 (file)
@@ -349,6 +349,21 @@ failure:
        return err;
 }
 
+static struct dst_entry *inet6_csk_update_pmtu(struct sock *sk, u32 mtu)
+{
+       struct flowi6 *fl6 = &inet_sk(sk)->cork.fl.u.ip6;
+       struct dst_entry *dst;
+
+       dst = inet6_csk_route_socket(sk, fl6);
+
+       if (IS_ERR(dst))
+               return NULL;
+       dst->ops->update_pmtu(dst, sk, NULL, mtu, true);
+
+       dst = inet6_csk_route_socket(sk, fl6);
+       return IS_ERR(dst) ? NULL : dst;
+}
+
 static void tcp_v6_mtu_reduced(struct sock *sk)
 {
        struct dst_entry *dst;