diff options
Diffstat (limited to 'net/ipv4/tcp_scalable.c')
| -rw-r--r-- | net/ipv4/tcp_scalable.c | 17 | 
1 files changed, 9 insertions, 8 deletions
diff --git a/net/ipv4/tcp_scalable.c b/net/ipv4/tcp_scalable.c index 471571e1ab26..6cebf412d590 100644 --- a/net/ipv4/tcp_scalable.c +++ b/net/ipv4/tcp_scalable.c @@ -10,10 +10,9 @@  #include <net/tcp.h>  /* These factors derived from the recommended values in the aer: - * .01 and and 7/8. We use 50 instead of 100 to account for - * delayed ack. + * .01 and and 7/8.   */ -#define TCP_SCALABLE_AI_CNT	50U +#define TCP_SCALABLE_AI_CNT	100U  #define TCP_SCALABLE_MD_SCALE	3  static void tcp_scalable_cong_avoid(struct sock *sk, u32 ack, u32 acked) @@ -23,11 +22,13 @@ static void tcp_scalable_cong_avoid(struct sock *sk, u32 ack, u32 acked)  	if (!tcp_is_cwnd_limited(sk))  		return; -	if (tcp_in_slow_start(tp)) -		tcp_slow_start(tp, acked); -	else -		tcp_cong_avoid_ai(tp, min(tp->snd_cwnd, TCP_SCALABLE_AI_CNT), -				  1); +	if (tcp_in_slow_start(tp)) { +		acked = tcp_slow_start(tp, acked); +		if (!acked) +			return; +	} +	tcp_cong_avoid_ai(tp, min(tp->snd_cwnd, TCP_SCALABLE_AI_CNT), +			  acked);  }  static u32 tcp_scalable_ssthresh(struct sock *sk)  |