diff options
Diffstat (limited to 'net/ipv4/tcp_timer.c')
| -rw-r--r-- | net/ipv4/tcp_timer.c | 8 | 
1 files changed, 4 insertions, 4 deletions
| diff --git a/net/ipv4/tcp_timer.c b/net/ipv4/tcp_timer.c index 808bb920c9f..c35b469e851 100644 --- a/net/ipv4/tcp_timer.c +++ b/net/ipv4/tcp_timer.c @@ -66,18 +66,18 @@ static void tcp_write_err(struct sock *sk)  static int tcp_out_of_resources(struct sock *sk, int do_reset)  {  	struct tcp_sock *tp = tcp_sk(sk); -	int orphans = percpu_counter_read_positive(&tcp_orphan_count); +	int shift = 0;  	/* If peer does not open window for long time, or did not transmit  	 * anything for long time, penalize it. */  	if ((s32)(tcp_time_stamp - tp->lsndtime) > 2*TCP_RTO_MAX || !do_reset) -		orphans <<= 1; +		shift++;  	/* If some dubious ICMP arrived, penalize even more. */  	if (sk->sk_err_soft) -		orphans <<= 1; +		shift++; -	if (tcp_too_many_orphans(sk, orphans)) { +	if (tcp_too_many_orphans(sk, shift)) {  		if (net_ratelimit())  			printk(KERN_INFO "Out of socket memory\n"); | 
