tcp: get rid of rst_seq_match
authorEric Dumazet <edumazet@google.com>
Sat, 16 Apr 2022 00:10:40 +0000 (17:10 -0700)
committerDavid S. Miller <davem@davemloft.net>
Sun, 17 Apr 2022 12:31:31 +0000 (13:31 +0100)
Small cleanup in tcp_validate_incoming(), no need for rst_seq_match
setting and testing.

Signed-off-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/ipv4/tcp_input.c

index d4bc717791704795a9a159baf4ccd501a9471609..b2d5fbef6ce3baa9426b3c9750002317a8915596 100644 (file)
@@ -5667,7 +5667,6 @@ static bool tcp_validate_incoming(struct sock *sk, struct sk_buff *skb,
                                  const struct tcphdr *th, int syn_inerr)
 {
        struct tcp_sock *tp = tcp_sk(sk);
-       bool rst_seq_match = false;
 
        /* RFC1323: H1. Apply PAWS check first. */
        if (tcp_fast_parse_options(sock_net(sk), skb, th, tp) &&
@@ -5717,9 +5716,10 @@ static bool tcp_validate_incoming(struct sock *sk, struct sk_buff *skb,
                 *     Send a challenge ACK
                 */
                if (TCP_SKB_CB(skb)->seq == tp->rcv_nxt ||
-                   tcp_reset_check(sk, skb)) {
-                       rst_seq_match = true;
-               } else if (tcp_is_sack(tp) && tp->rx_opt.num_sacks > 0) {
+                   tcp_reset_check(sk, skb))
+                       goto reset;
+
+               if (tcp_is_sack(tp) && tp->rx_opt.num_sacks > 0) {
                        struct tcp_sack_block *sp = &tp->selective_acks[0];
                        int max_sack = sp[0].end_seq;
                        int this_sack;
@@ -5732,12 +5732,9 @@ static bool tcp_validate_incoming(struct sock *sk, struct sk_buff *skb,
                        }
 
                        if (TCP_SKB_CB(skb)->seq == max_sack)
-                               rst_seq_match = true;
+                               goto reset;
                }
 
-               if (rst_seq_match)
-                       goto reset;
-
                /* Disable TFO if RST is out-of-order
                 * and no data has been received
                 * for current active TFO socket