|
@@ -245,29 +245,6 @@ out:
|
|
|
}
|
|
|
EXPORT_SYMBOL(inet_listen);
|
|
|
|
|
|
-u32 inet_ehash_secret __read_mostly;
|
|
|
-EXPORT_SYMBOL(inet_ehash_secret);
|
|
|
-
|
|
|
-u32 ipv6_hash_secret __read_mostly;
|
|
|
-EXPORT_SYMBOL(ipv6_hash_secret);
|
|
|
-
|
|
|
-/*
|
|
|
- * inet_ehash_secret must be set exactly once, and to a non nul value
|
|
|
- * ipv6_hash_secret must be set exactly once.
|
|
|
- */
|
|
|
-void build_ehash_secret(void)
|
|
|
-{
|
|
|
- u32 rnd;
|
|
|
-
|
|
|
- do {
|
|
|
- get_random_bytes(&rnd, sizeof(rnd));
|
|
|
- } while (rnd == 0);
|
|
|
-
|
|
|
- if (cmpxchg(&inet_ehash_secret, 0, rnd) == 0)
|
|
|
- get_random_bytes(&ipv6_hash_secret, sizeof(ipv6_hash_secret));
|
|
|
-}
|
|
|
-EXPORT_SYMBOL(build_ehash_secret);
|
|
|
-
|
|
|
/*
|
|
|
* Create an inet socket.
|
|
|
*/
|
|
@@ -284,10 +261,6 @@ static int inet_create(struct net *net, struct socket *sock, int protocol,
|
|
|
int try_loading_module = 0;
|
|
|
int err;
|
|
|
|
|
|
- if (unlikely(!inet_ehash_secret))
|
|
|
- if (sock->type != SOCK_RAW && sock->type != SOCK_DGRAM)
|
|
|
- build_ehash_secret();
|
|
|
-
|
|
|
sock->state = SS_UNCONNECTED;
|
|
|
|
|
|
/* Look for the requested type/protocol pair. */
|