diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2008-12-30 20:39:37 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2008-12-30 20:39:37 -0500 |
commit | 5ed1836814d908f45cafde0e79cb85314ab9d41d (patch) | |
tree | 53db7ccf23c78d105b63adf4ee40a07068f0f856 /net/ipv4/tcp.c | |
parent | ab70537c32a3245325b48774664da588904e47f2 (diff) | |
parent | eb4dea5853046727bfbb579f0c9a8cae7369f7c6 (diff) |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6
* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6:
net: Fix percpu counters deadlock
cpumask: prepare for iterators to only go to nr_cpu_ids/nr_cpumask_bits: net
drivers/net/usb: use USB API functions rather than constants
cls_cgroup: clean up Kconfig
cls_cgroup: clean up for cgroup part
cls_cgroup: fix an oops when removing a cgroup
EtherExpress16: fix printing timed out status
mlx4_en: Added "set_ringparam" Ethtool interface implementation
mlx4_en: Always allocate RX ring for each interrupt vector
mlx4_en: Verify number of RX rings doesn't exceed MAX_RX_RINGS
IPVS: Make "no destination available" message more consistent between schedulers
net: KS8695: removed duplicated #include
tun: Fix SIOCSIFHWADDR error.
smsc911x: compile fix re netif_rx signature changes
netns: foreach_netdev_safe is insufficient in default_device_exit
net: make xfrm_statistics_seq_show use generic snmp_fold_field
net: Fix more NAPI interface netdev argument drop fallout.
net: Fix unused variable warnings in pasemi_mac.c and spider_net.c
Diffstat (limited to 'net/ipv4/tcp.c')
-rw-r--r-- | net/ipv4/tcp.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/net/ipv4/tcp.c b/net/ipv4/tcp.c index 1f3d52946b3b..f28acf11fc67 100644 --- a/net/ipv4/tcp.c +++ b/net/ipv4/tcp.c | |||
@@ -1836,7 +1836,6 @@ adjudge_to_death: | |||
1836 | state = sk->sk_state; | 1836 | state = sk->sk_state; |
1837 | sock_hold(sk); | 1837 | sock_hold(sk); |
1838 | sock_orphan(sk); | 1838 | sock_orphan(sk); |
1839 | percpu_counter_inc(sk->sk_prot->orphan_count); | ||
1840 | 1839 | ||
1841 | /* It is the last release_sock in its life. It will remove backlog. */ | 1840 | /* It is the last release_sock in its life. It will remove backlog. */ |
1842 | release_sock(sk); | 1841 | release_sock(sk); |
@@ -1849,6 +1848,8 @@ adjudge_to_death: | |||
1849 | bh_lock_sock(sk); | 1848 | bh_lock_sock(sk); |
1850 | WARN_ON(sock_owned_by_user(sk)); | 1849 | WARN_ON(sock_owned_by_user(sk)); |
1851 | 1850 | ||
1851 | percpu_counter_inc(sk->sk_prot->orphan_count); | ||
1852 | |||
1852 | /* Have we already been destroyed by a softirq or backlog? */ | 1853 | /* Have we already been destroyed by a softirq or backlog? */ |
1853 | if (state != TCP_CLOSE && sk->sk_state == TCP_CLOSE) | 1854 | if (state != TCP_CLOSE && sk->sk_state == TCP_CLOSE) |
1854 | goto out; | 1855 | goto out; |