diff options
author | Jiri Kosina <jkosina@suse.cz> | 2010-09-24 14:03:37 +0200 |
---|---|---|
committer | Jiri Kosina <jkosina@suse.cz> | 2010-09-24 14:03:37 +0200 |
commit | 73e6d6c6467771838c1fc6949e6768a12ed72464 (patch) | |
tree | 94dd60891869a0a275cd332c4e675cf0b101fcfa /net/ipv4/tcp_timer.c | |
parent | 12e5272585901217e919da810c801e5084ee0cb1 (diff) | |
parent | a850ea30374ebed32a0724742601861853fde869 (diff) |
Merge branch 'master' into upstream
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 808bb920c9f5..c35b469e851c 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"); |