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/proc.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/proc.c')
-rw-r--r-- | net/ipv4/proc.c | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/net/ipv4/proc.c b/net/ipv4/proc.c index 614958b7c276..eb62e58bff79 100644 --- a/net/ipv4/proc.c +++ b/net/ipv4/proc.c | |||
@@ -38,6 +38,7 @@ | |||
38 | #include <net/tcp.h> | 38 | #include <net/tcp.h> |
39 | #include <net/udp.h> | 39 | #include <net/udp.h> |
40 | #include <net/udplite.h> | 40 | #include <net/udplite.h> |
41 | #include <linux/bottom_half.h> | ||
41 | #include <linux/inetdevice.h> | 42 | #include <linux/inetdevice.h> |
42 | #include <linux/proc_fs.h> | 43 | #include <linux/proc_fs.h> |
43 | #include <linux/seq_file.h> | 44 | #include <linux/seq_file.h> |
@@ -50,13 +51,17 @@ | |||
50 | static int sockstat_seq_show(struct seq_file *seq, void *v) | 51 | static int sockstat_seq_show(struct seq_file *seq, void *v) |
51 | { | 52 | { |
52 | struct net *net = seq->private; | 53 | struct net *net = seq->private; |
54 | int orphans, sockets; | ||
55 | |||
56 | local_bh_disable(); | ||
57 | orphans = percpu_counter_sum_positive(&tcp_orphan_count), | ||
58 | sockets = percpu_counter_sum_positive(&tcp_sockets_allocated), | ||
59 | local_bh_enable(); | ||
53 | 60 | ||
54 | socket_seq_show(seq); | 61 | socket_seq_show(seq); |
55 | seq_printf(seq, "TCP: inuse %d orphan %d tw %d alloc %d mem %d\n", | 62 | seq_printf(seq, "TCP: inuse %d orphan %d tw %d alloc %d mem %d\n", |
56 | sock_prot_inuse_get(net, &tcp_prot), | 63 | sock_prot_inuse_get(net, &tcp_prot), orphans, |
57 | (int)percpu_counter_sum_positive(&tcp_orphan_count), | 64 | tcp_death_row.tw_count, sockets, |
58 | tcp_death_row.tw_count, | ||
59 | (int)percpu_counter_sum_positive(&tcp_sockets_allocated), | ||
60 | atomic_read(&tcp_memory_allocated)); | 65 | atomic_read(&tcp_memory_allocated)); |
61 | seq_printf(seq, "UDP: inuse %d mem %d\n", | 66 | seq_printf(seq, "UDP: inuse %d mem %d\n", |
62 | sock_prot_inuse_get(net, &udp_prot), | 67 | sock_prot_inuse_get(net, &udp_prot), |