diff options
Diffstat (limited to 'net/ipv6/tcp_ipv6.c')
| -rw-r--r-- | net/ipv6/tcp_ipv6.c | 6 | 
1 files changed, 6 insertions, 0 deletions
| diff --git a/net/ipv6/tcp_ipv6.c b/net/ipv6/tcp_ipv6.c index d1fd28711ba5..78aa53492b3e 100644 --- a/net/ipv6/tcp_ipv6.c +++ b/net/ipv6/tcp_ipv6.c @@ -1341,6 +1341,7 @@ static int tcp_v6_conn_request(struct sock *sk, struct sk_buff *skb)  	}  have_isn:  	tcp_rsk(req)->snt_isn = isn; +	tcp_rsk(req)->snt_synack = tcp_time_stamp;  	security_inet_conn_request(sk, skb, req); @@ -1509,6 +1510,10 @@ static struct sock * tcp_v6_syn_recv_sock(struct sock *sk, struct sk_buff *skb,  	tcp_sync_mss(newsk, dst_mtu(dst));  	newtp->advmss = dst_metric_advmss(dst);  	tcp_initialize_rcv_mss(newsk); +	if (tcp_rsk(req)->snt_synack) +		tcp_valid_rtt_meas(newsk, +		    tcp_time_stamp - tcp_rsk(req)->snt_synack); +	newtp->total_retrans = req->retrans;  	newinet->inet_daddr = newinet->inet_saddr = LOOPBACK4_IPV6;  	newinet->inet_rcv_saddr = LOOPBACK4_IPV6; @@ -1644,6 +1649,7 @@ static int tcp_v6_do_rcv(struct sock *sk, struct sk_buff *skb)  		 * the new socket..  		 */  		if(nsk != sk) { +			sock_rps_save_rxhash(nsk, skb->rxhash);  			if (tcp_child_process(sk, nsk, skb))  				goto reset;  			if (opt_skb) |