percpu-ref: fix DEAD flag contamination of percpu pointer
[linux-2.6-microblaze.git] / net / ipv4 / tcp_metrics.c
index 0d54e59..ed9c9a9 100644 (file)
@@ -576,7 +576,8 @@ reset:
        tp->snd_cwnd_stamp = tcp_time_stamp;
 }
 
-bool tcp_peer_is_proven(struct request_sock *req, struct dst_entry *dst, bool paws_check)
+bool tcp_peer_is_proven(struct request_sock *req, struct dst_entry *dst,
+                       bool paws_check, bool timestamps)
 {
        struct tcp_metrics_block *tm;
        bool ret;
@@ -589,7 +590,8 @@ bool tcp_peer_is_proven(struct request_sock *req, struct dst_entry *dst, bool pa
        if (paws_check) {
                if (tm &&
                    (u32)get_seconds() - tm->tcpm_ts_stamp < TCP_PAWS_MSL &&
-                   (s32)(tm->tcpm_ts - req->ts_recent) > TCP_PAWS_WINDOW)
+                   ((s32)(tm->tcpm_ts - req->ts_recent) > TCP_PAWS_WINDOW ||
+                    !timestamps))
                        ret = false;
                else
                        ret = true;