diff --git a/drivers/android/vendor_hooks.c b/drivers/android/vendor_hooks.c index 140797269127..028d296627ed 100644 --- a/drivers/android/vendor_hooks.c +++ b/drivers/android/vendor_hooks.c @@ -182,6 +182,7 @@ EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_panic_unhandled); EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_arm64_serror_panic); EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_do_sea); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_tcp_write_timeout_estab_retrans); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_tcp_connect); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_inet_csk_clone_lock); EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_cpu_capacity_show); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_rwsem_init); diff --git a/include/trace/hooks/net.h b/include/trace/hooks/net.h index 04844c0ced1e..fe589c2ab245 100644 --- a/include/trace/hooks/net.h +++ b/include/trace/hooks/net.h @@ -17,6 +17,8 @@ DECLARE_HOOK(android_vh_ptype_head, struct sock; DECLARE_HOOK(android_vh_tcp_write_timeout_estab_retrans, TP_PROTO(struct sock *sk), TP_ARGS(sk)); +DECLARE_HOOK(android_vh_tcp_connect, + TP_PROTO(struct sk_buff *skb), TP_ARGS(skb)); struct request_sock; DECLARE_HOOK(android_vh_inet_csk_clone_lock, TP_PROTO(struct sock *newsk, const struct request_sock *req), TP_ARGS(newsk, req)); diff --git a/net/ipv4/tcp_output.c b/net/ipv4/tcp_output.c index 724c8cd4adf3..4173bb91155c 100644 --- a/net/ipv4/tcp_output.c +++ b/net/ipv4/tcp_output.c @@ -48,6 +48,7 @@ #include #include +#include /* Refresh clocks of a TCP socket, * ensuring monotically increasing values. @@ -4152,6 +4153,9 @@ int tcp_connect(struct sock *sk) */ WRITE_ONCE(tp->snd_nxt, tp->write_seq); tp->pushed_seq = tp->write_seq; + + trace_android_vh_tcp_connect(buff); + buff = tcp_send_head(sk); if (unlikely(buff)) { WRITE_ONCE(tp->snd_nxt, TCP_SKB_CB(buff)->seq);