Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge branch 'tcp-remove-rtx_syn_ack-and-inet_rtx_syn_ack'

Eric Dumazet says:

====================
tcp: remove rtx_syn_ack and inet_rtx_syn_ack()

After DCCP removal, we can cleanup SYNACK retransmits a bit.
====================

Link: https://patch.msgid.link/20250626153017.2156274-1-edumazet@google.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>

+4 -18
-4
include/net/request_sock.h
··· 30 30 unsigned int obj_size; 31 31 struct kmem_cache *slab; 32 32 char *slab_name; 33 - int (*rtx_syn_ack)(const struct sock *sk, 34 - struct request_sock *req); 35 33 void (*send_ack)(const struct sock *sk, struct sk_buff *skb, 36 34 struct request_sock *req); 37 35 void (*send_reset)(const struct sock *sk, ··· 38 40 void (*destructor)(struct request_sock *req); 39 41 void (*syn_ack_timeout)(const struct request_sock *req); 40 42 }; 41 - 42 - int inet_rtx_syn_ack(const struct sock *parent, struct request_sock *req); 43 43 44 44 struct saved_syn { 45 45 u32 mac_hdrlen;
+1 -10
net/ipv4/inet_connection_sock.c
··· 884 884 req->num_timeout >= rskq_defer_accept - 1; 885 885 } 886 886 887 - int inet_rtx_syn_ack(const struct sock *parent, struct request_sock *req) 888 - { 889 - int err = req->rsk_ops->rtx_syn_ack(parent, req); 890 - 891 - if (!err) 892 - req->num_retrans++; 893 - return err; 894 - } 895 - 896 887 static struct request_sock * 897 888 reqsk_alloc_noprof(const struct request_sock_ops *ops, struct sock *sk_listener, 898 889 bool attach_listener) ··· 1123 1132 req->rsk_ops->syn_ack_timeout(req); 1124 1133 if (!expire && 1125 1134 (!resend || 1126 - !inet_rtx_syn_ack(sk_listener, req) || 1135 + !tcp_rtx_synack(sk_listener, req) || 1127 1136 inet_rsk(req)->acked)) { 1128 1137 if (req->num_timeout++ == 0) 1129 1138 atomic_dec(&queue->young);
-1
net/ipv4/tcp_ipv4.c
··· 1703 1703 struct request_sock_ops tcp_request_sock_ops __read_mostly = { 1704 1704 .family = PF_INET, 1705 1705 .obj_size = sizeof(struct tcp_request_sock), 1706 - .rtx_syn_ack = tcp_rtx_synack, 1707 1706 .send_ack = tcp_v4_reqsk_send_ack, 1708 1707 .destructor = tcp_v4_reqsk_destructor, 1709 1708 .send_reset = tcp_v4_send_reset,
+1 -1
net/ipv4/tcp_minisocks.c
··· 726 726 LINUX_MIB_TCPACKSKIPPEDSYNRECV, 727 727 &tcp_rsk(req)->last_oow_ack_time) && 728 728 729 - !inet_rtx_syn_ack(sk, req)) { 729 + !tcp_rtx_synack(sk, req)) { 730 730 unsigned long expires = jiffies; 731 731 732 732 expires += reqsk_timeout(req, TCP_RTO_MAX);
+1
net/ipv4/tcp_output.c
··· 4425 4425 tcp_sk_rw(sk)->total_retrans++; 4426 4426 } 4427 4427 trace_tcp_retransmit_synack(sk, req); 4428 + req->num_retrans++; 4428 4429 } 4429 4430 return res; 4430 4431 }
+1 -1
net/ipv4/tcp_timer.c
··· 478 478 * regular retransmit because if the child socket has been accepted 479 479 * it's not good to give up too easily. 480 480 */ 481 - inet_rtx_syn_ack(sk, req); 481 + tcp_rtx_synack(sk, req); 482 482 req->num_timeout++; 483 483 tcp_update_rto_stats(sk); 484 484 if (!tp->retrans_stamp)
-1
net/ipv6/tcp_ipv6.c
··· 835 835 struct request_sock_ops tcp6_request_sock_ops __read_mostly = { 836 836 .family = AF_INET6, 837 837 .obj_size = sizeof(struct tcp6_request_sock), 838 - .rtx_syn_ack = tcp_rtx_synack, 839 838 .send_ack = tcp_v6_reqsk_send_ack, 840 839 .destructor = tcp_v6_reqsk_destructor, 841 840 .send_reset = tcp_v6_send_reset,