diff options
Diffstat (limited to 'net/ipv4/tcp_timer.c')
| -rw-r--r-- | net/ipv4/tcp_timer.c | 21 | 
1 files changed, 7 insertions, 14 deletions
| diff --git a/net/ipv4/tcp_timer.c b/net/ipv4/tcp_timer.c index 0732b787904e..8c65dc147d8b 100644 --- a/net/ipv4/tcp_timer.c +++ b/net/ipv4/tcp_timer.c @@ -107,6 +107,7 @@ static void tcp_mtu_probing(struct inet_connection_sock *icsk, struct sock *sk)  	if (net->ipv4.sysctl_tcp_mtu_probing) {  		if (!icsk->icsk_mtup.enabled) {  			icsk->icsk_mtup.enabled = 1; +			icsk->icsk_mtup.probe_timestamp = tcp_time_stamp;  			tcp_sync_mss(sk, icsk->icsk_pmtu_cookie);  		} else {  			struct net *net = sock_net(sk); @@ -166,7 +167,7 @@ static int tcp_write_timeout(struct sock *sk)  		if (icsk->icsk_retransmits) {  			dst_negative_advice(sk);  			if (tp->syn_fastopen || tp->syn_data) -				tcp_fastopen_cache_set(sk, 0, NULL, true); +				tcp_fastopen_cache_set(sk, 0, NULL, true, 0);  			if (tp->syn_data)  				NET_INC_STATS_BH(sock_net(sk),  						 LINUX_MIB_TCPFASTOPENACTIVEFAIL); @@ -326,7 +327,7 @@ static void tcp_fastopen_synack_timer(struct sock *sk)  	struct request_sock *req;  	req = tcp_sk(sk)->fastopen_rsk; -	req->rsk_ops->syn_ack_timeout(sk, req); +	req->rsk_ops->syn_ack_timeout(req);  	if (req->num_timeout >= max_retries) {  		tcp_write_err(sk); @@ -538,19 +539,11 @@ static void tcp_write_timer(unsigned long data)  	sock_put(sk);  } -/* - *	Timer for listening sockets - */ - -static void tcp_synack_timer(struct sock *sk) +void tcp_syn_ack_timeout(const struct request_sock *req)  { -	inet_csk_reqsk_queue_prune(sk, TCP_SYNQ_INTERVAL, -				   TCP_TIMEOUT_INIT, TCP_RTO_MAX); -} +	struct net *net = read_pnet(&inet_rsk(req)->ireq_net); -void tcp_syn_ack_timeout(struct sock *sk, struct request_sock *req) -{ -	NET_INC_STATS_BH(sock_net(sk), LINUX_MIB_TCPTIMEOUTS); +	NET_INC_STATS_BH(net, LINUX_MIB_TCPTIMEOUTS);  }  EXPORT_SYMBOL(tcp_syn_ack_timeout); @@ -582,7 +575,7 @@ static void tcp_keepalive_timer (unsigned long data)  	}  	if (sk->sk_state == TCP_LISTEN) { -		tcp_synack_timer(sk); +		pr_err("Hmm... keepalive on a LISTEN ???\n");  		goto out;  	} |