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 sock;
|
||||||
struct sockaddr;
|
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 *inet6_csk_route_req(const struct sock *sk,
|
||||||
struct dst_entry *dst,
|
struct dst_entry *dst,
|
||||||
struct flowi6 *fl6,
|
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);
|
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 */
|
#endif /* _INET6_CONNECTION_SOCK_H */
|
||||||
|
|
|
||||||
|
|
@ -56,8 +56,8 @@ struct dst_entry *inet6_csk_route_req(const struct sock *sk,
|
||||||
return dst;
|
return dst;
|
||||||
}
|
}
|
||||||
|
|
||||||
static struct dst_entry *inet6_csk_route_socket(struct sock *sk,
|
struct dst_entry *inet6_csk_route_socket(struct sock *sk,
|
||||||
struct flowi6 *fl6)
|
struct flowi6 *fl6)
|
||||||
{
|
{
|
||||||
struct inet_sock *inet = inet_sk(sk);
|
struct inet_sock *inet = inet_sk(sk);
|
||||||
struct ipv6_pinfo *np = inet6_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;
|
return res;
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL_GPL(inet6_csk_xmit);
|
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;
|
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)
|
static void tcp_v6_mtu_reduced(struct sock *sk)
|
||||||
{
|
{
|
||||||
struct dst_entry *dst;
|
struct dst_entry *dst;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue