summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/linux/netfilter_arp.h1
-rw-r--r--include/linux/tcp.h9
-rw-r--r--net/ipv4/netfilter/arp_tables.c2
-rw-r--r--net/ipv4/tcp_diag.c3
4 files changed, 11 insertions, 4 deletions
diff --git a/include/linux/netfilter_arp.h b/include/linux/netfilter_arp.h
index ecb3b56a60d3..a3f8977f7f12 100644
--- a/include/linux/netfilter_arp.h
+++ b/include/linux/netfilter_arp.h
@@ -17,5 +17,4 @@
#define NF_ARP_FORWARD 2
#define NF_ARP_NUMHOOKS 3
-static DECLARE_MUTEX(arpt_mutex);
#endif /* __LINUX_ARP_NETFILTER_H */
diff --git a/include/linux/tcp.h b/include/linux/tcp.h
index 6f33c87d8ab5..39e2d22619dc 100644
--- a/include/linux/tcp.h
+++ b/include/linux/tcp.h
@@ -183,6 +183,9 @@ struct tcp_info
__u32 tcpi_snd_cwnd;
__u32 tcpi_advmss;
__u32 tcpi_reordering;
+
+ __u32 tcpi_rcv_rtt;
+ __u32 tcpi_rcv_space;
};
#ifdef __KERNEL__
@@ -351,11 +354,11 @@ struct tcp_opt {
__u8 urg_mode; /* In urgent mode */
__u32 snd_up; /* Urgent pointer */
- /* The syn_wait_lock is necessary only to avoid tcp_get_info having
+ /* The syn_wait_lock is necessary only to avoid proc interface having
* to grab the main lock sock while browsing the listening hash
* (otherwise it's deadlock prone).
- * This lock is acquired in read mode only from tcp_get_info() and
- * it's acquired in write mode _only_ from code that is actively
+ * This lock is acquired in read mode only from listening_get_next()
+ * and it's acquired in write mode _only_ from code that is actively
* changing the syn_wait_queue. All readers that are holding
* the master sock lock don't need to grab this lock in read mode
* too as the syn_wait_queue writes are always protected from
diff --git a/net/ipv4/netfilter/arp_tables.c b/net/ipv4/netfilter/arp_tables.c
index c8309d63e736..28277c90eb18 100644
--- a/net/ipv4/netfilter/arp_tables.c
+++ b/net/ipv4/netfilter/arp_tables.c
@@ -62,6 +62,8 @@ do { \
#include <linux/netfilter_ipv4/lockhelp.h>
#include <linux/netfilter_ipv4/listhelp.h>
+static DECLARE_MUTEX(arpt_mutex);
+
struct arpt_table_info {
unsigned int size;
unsigned int number;
diff --git a/net/ipv4/tcp_diag.c b/net/ipv4/tcp_diag.c
index ff047707bbb8..5506944b7e7c 100644
--- a/net/ipv4/tcp_diag.c
+++ b/net/ipv4/tcp_diag.c
@@ -91,6 +91,9 @@ void tcp_get_info(struct sock *sk, struct tcp_info *info)
info->tcpi_snd_cwnd = tp->snd_cwnd;
info->tcpi_advmss = tp->advmss;
info->tcpi_reordering = tp->reordering;
+
+ info->tcpi_rcv_rtt = ((1000000*tp->rcv_rtt_est.rtt)/HZ)>>3;
+ info->tcpi_rcv_space = tp->rcvq_space.space;
}
static int tcpdiag_fill(struct sk_buff *skb, struct sock *sk,