[INET]: Move tcp_port_rover to inet_hashinfo

Also expose all of the tcp_hashinfo members, i.e. killing those
tcp_ehash, etc macros, this will more clearly expose already generic
functions and some that need just a bit of work to become generic, as
we'll see in the upcoming changesets.

Signed-off-by: Arnaldo Carvalho de Melo <acme@ghostprotocols.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
diff --git a/include/net/inet_hashtables.h b/include/net/inet_hashtables.h
index da97055..da07411 100644
--- a/include/net/inet_hashtables.h
+++ b/include/net/inet_hashtables.h
@@ -117,6 +117,7 @@
 	wait_queue_head_t		lhash_wait;
 	spinlock_t			portalloc_lock;
 	kmem_cache_t			*bind_bucket_cachep;
+	int				port_rover;
 };
 
 static inline int inet_ehashfn(const __u32 laddr, const __u16 lport,
diff --git a/include/net/sock.h b/include/net/sock.h
index 69d869e..391d00b 100644
--- a/include/net/sock.h
+++ b/include/net/sock.h
@@ -136,7 +136,7 @@
   *	@sk_no_check: %SO_NO_CHECK setting, wether or not checkup packets
   *	@sk_route_caps: route capabilities (e.g. %NETIF_F_TSO)
   *	@sk_lingertime: %SO_LINGER l_linger setting
-  *	@sk_hashent: hash entry in several tables (e.g. tcp_ehash)
+  *	@sk_hashent: hash entry in several tables (e.g. inet_hashinfo.ehash)
   *	@sk_backlog: always used with the per-socket spinlock held
   *	@sk_callback_lock: used with the callbacks in the end of this struct
   *	@sk_error_queue: rarely used
diff --git a/include/net/tcp.h b/include/net/tcp.h
index 9eb8ff7..99e4769 100644
--- a/include/net/tcp.h
+++ b/include/net/tcp.h
@@ -41,19 +41,7 @@
 #endif
 #include <linux/seq_file.h>
 
-extern struct inet_hashinfo	tcp_hashinfo;
-#define tcp_ehash		(tcp_hashinfo.ehash)
-#define tcp_bhash		(tcp_hashinfo.bhash)
-#define tcp_ehash_size		(tcp_hashinfo.ehash_size)
-#define tcp_bhash_size		(tcp_hashinfo.bhash_size)
-#define tcp_listening_hash	(tcp_hashinfo.listening_hash)
-#define tcp_lhash_lock		(tcp_hashinfo.lhash_lock)
-#define tcp_lhash_users		(tcp_hashinfo.lhash_users)
-#define tcp_lhash_wait		(tcp_hashinfo.lhash_wait)
-#define tcp_portalloc_lock	(tcp_hashinfo.portalloc_lock)
-#define tcp_bucket_cachep	(tcp_hashinfo.bind_bucket_cachep)
-
-extern int tcp_port_rover;
+extern struct inet_hashinfo tcp_hashinfo;
 
 #if (BITS_PER_LONG == 64)
 #define TCP_ADDRCMP_ALIGN_BYTES 8
@@ -1463,21 +1451,21 @@
 
 /* - We may sleep inside this lock.
  * - If sleeping is not required (or called from BH),
- *   use plain read_(un)lock(&tcp_lhash_lock).
+ *   use plain read_(un)lock(&inet_hashinfo.lhash_lock).
  */
 
 static inline void tcp_listen_lock(void)
 {
 	/* read_lock synchronizes to candidates to writers */
-	read_lock(&tcp_lhash_lock);
-	atomic_inc(&tcp_lhash_users);
-	read_unlock(&tcp_lhash_lock);
+	read_lock(&tcp_hashinfo.lhash_lock);
+	atomic_inc(&tcp_hashinfo.lhash_users);
+	read_unlock(&tcp_hashinfo.lhash_lock);
 }
 
 static inline void tcp_listen_unlock(void)
 {
-	if (atomic_dec_and_test(&tcp_lhash_users))
-		wake_up(&tcp_lhash_wait);
+	if (atomic_dec_and_test(&tcp_hashinfo.lhash_users))
+		wake_up(&tcp_hashinfo.lhash_wait);
 }
 
 static inline int keepalive_intvl_when(const struct tcp_sock *tp)