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) &&
                 *     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;
                        }
 
                        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