tcp: move inet6_csk_update_pmtu() to tcp_ipv6.c
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>master
parent
fca59a2dd0
commit
539a6cf084
|
|
@ -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 */
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
Loading…
Reference in New Issue