aboutsummaryrefslogtreecommitdiffstats
path: root/net/ipv4/af_inet.c
diff options
context:
space:
mode:
authorColin Cross <ccross@android.com>2013-03-13 17:16:02 -0700
committerColin Cross <ccross@android.com>2013-03-13 17:16:02 -0700
commit0b203ab4aacdb6e6dfb8c277aa290f0a02428e6f (patch)
tree9bab760a750d9cf4504d92603ee7fc82beeb2e38 /net/ipv4/af_inet.c
parenta276def548828763cf5ac228adf8c1ca73f8d4d3 (diff)
parente28c3f2b514b5581e15614f7cf976131092cf4b6 (diff)
downloadkernel_samsung_tuna-0b203ab4aacdb6e6dfb8c277aa290f0a02428e6f.zip
kernel_samsung_tuna-0b203ab4aacdb6e6dfb8c277aa290f0a02428e6f.tar.gz
kernel_samsung_tuna-0b203ab4aacdb6e6dfb8c277aa290f0a02428e6f.tar.bz2
Merge tag 'v3.0.68' into android-3.0
This is the 3.0.68 stable release Conflicts: kernel/cgroup.c Change-Id: I067982d25e18e3a12de93a5eb6429b8829d7ca11
Diffstat (limited to 'net/ipv4/af_inet.c')
-rw-r--r--net/ipv4/af_inet.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/net/ipv4/af_inet.c b/net/ipv4/af_inet.c
index 4d60f12..be3d56a 100644
--- a/net/ipv4/af_inet.c
+++ b/net/ipv4/af_inet.c
@@ -239,8 +239,12 @@ 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
+ * 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)
{
@@ -250,7 +254,8 @@ void build_ehash_secret(void)
get_random_bytes(&rnd, sizeof(rnd));
} while (rnd == 0);
- cmpxchg(&inet_ehash_secret, 0, rnd);
+ if (cmpxchg(&inet_ehash_secret, 0, rnd) == 0)
+ get_random_bytes(&ipv6_hash_secret, sizeof(ipv6_hash_secret));
}
EXPORT_SYMBOL(build_ehash_secret);