|
@@ -5313,11 +5313,6 @@ static bool tcp_validate_incoming(struct sock *sk, struct sk_buff *skb,
|
|
|
goto discard;
|
|
|
}
|
|
|
|
|
|
- /* ts_recent update must be made after we are sure that the packet
|
|
|
- * is in window.
|
|
|
- */
|
|
|
- tcp_replace_ts_recent(tp, TCP_SKB_CB(skb)->seq);
|
|
|
-
|
|
|
/* step 3: check security and precedence [ignored] */
|
|
|
|
|
|
/* step 4: Check for a SYN
|
|
@@ -5552,6 +5547,11 @@ step5:
|
|
|
if (th->ack && tcp_ack(sk, skb, FLAG_SLOWPATH) < 0)
|
|
|
goto discard;
|
|
|
|
|
|
+ /* ts_recent update must be made after we are sure that the packet
|
|
|
+ * is in window.
|
|
|
+ */
|
|
|
+ tcp_replace_ts_recent(tp, TCP_SKB_CB(skb)->seq);
|
|
|
+
|
|
|
tcp_rcv_rtt_measure_ts(sk, skb);
|
|
|
|
|
|
/* Process urgent data. */
|
|
@@ -6130,6 +6130,11 @@ int tcp_rcv_state_process(struct sock *sk, struct sk_buff *skb,
|
|
|
} else
|
|
|
goto discard;
|
|
|
|
|
|
+ /* ts_recent update must be made after we are sure that the packet
|
|
|
+ * is in window.
|
|
|
+ */
|
|
|
+ tcp_replace_ts_recent(tp, TCP_SKB_CB(skb)->seq);
|
|
|
+
|
|
|
/* step 6: check the URG bit */
|
|
|
tcp_urg(sk, skb, th);
|
|
|
|