tcp: use tp->total_rto to track number of linear timeouts in SYN_SENT state
authorEric Dumazet <edumazet@google.com>
Tue, 14 Nov 2023 17:23:40 +0000 (17:23 +0000)
committerDavid S. Miller <davem@davemloft.net>
Thu, 16 Nov 2023 23:35:12 +0000 (23:35 +0000)
commit14dd92d0a1174d3fe052bf87a3ae3a6914946170
treedf28967b40c2688150b1c62217e4569d5d4c9cd8
parentc6e9dba3be5ef3b701b29b143609561915e5d0e9
tcp: use tp->total_rto to track number of linear timeouts in SYN_SENT state

In commit ccce324dabfe ("tcp: make the first N SYN RTO backoffs linear")
David used icsk->icsk_backoff field to track the number of linear timeouts.

Since then, tp->total_rto has been added.

This commit uses tp->total_rto instead of icsk->icsk_backoff
so that tcp_ld_RTO_revert() no longer can trigger an overflow
in inet_csk_rto_backoff(). Other than the potential UBSAN
report, there was no issue because receiving an ICMP message
currently aborts the connect().

In the following patch, we want to adhere to RFC 6069
and RFC 1122 4.2.3.9.

Signed-off-by: Eric Dumazet <edumazet@google.com>
Cc: David Morley <morleyd@google.com>
Cc: Neal Cardwell <ncardwell@google.com>
Cc: Yuchung Cheng <ycheng@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/ipv4/tcp_timer.c