diff options
Diffstat (limited to 'net/ipv4/tcp_metrics.c')
| -rw-r--r-- | net/ipv4/tcp_metrics.c | 7 | 
1 files changed, 4 insertions, 3 deletions
diff --git a/net/ipv4/tcp_metrics.c b/net/ipv4/tcp_metrics.c index 4fe041805989..ed9c9a91851c 100644 --- a/net/ipv4/tcp_metrics.c +++ b/net/ipv4/tcp_metrics.c @@ -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; @@ -1093,7 +1095,6 @@ static const struct genl_ops tcp_metrics_nl_ops[] = {  		.doit = tcp_metrics_nl_cmd_get,  		.dumpit = tcp_metrics_nl_dump,  		.policy = tcp_metrics_nl_policy, -		.flags = GENL_ADMIN_PERM,  	},  	{  		.cmd = TCP_METRICS_CMD_DEL,  |