diff options
author | Hannes Frederic Sowa <hannes@stressinduktion.org> | 2013-10-19 15:48:59 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2013-10-19 19:45:36 -0400 |
commit | e34c9a69970d8664a36b46e6445a7cc879111cfd (patch) | |
tree | 68768a3e760a90b2b13a8e7a83d573c0e63a4a35 /net/core | |
parent | 222e83d2e0aecb6a5e8d42b1a8d51332a1eba960 (diff) |
net: switch net_secret key generation to net_get_random_once
Cc: Eric Dumazet <edumazet@google.com>
Cc: "David S. Miller" <davem@davemloft.net>
Signed-off-by: Hannes Frederic Sowa <hannes@stressinduktion.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/core')
-rw-r--r-- | net/core/secure_seq.c | 14 |
1 files changed, 2 insertions, 12 deletions
diff --git a/net/core/secure_seq.c b/net/core/secure_seq.c index 3f1ec1586ae1..b02fd16b8942 100644 --- a/net/core/secure_seq.c +++ b/net/core/secure_seq.c | |||
@@ -7,6 +7,7 @@ | |||
7 | #include <linux/hrtimer.h> | 7 | #include <linux/hrtimer.h> |
8 | #include <linux/ktime.h> | 8 | #include <linux/ktime.h> |
9 | #include <linux/string.h> | 9 | #include <linux/string.h> |
10 | #include <linux/net.h> | ||
10 | 11 | ||
11 | #include <net/secure_seq.h> | 12 | #include <net/secure_seq.h> |
12 | 13 | ||
@@ -16,18 +17,7 @@ static u32 net_secret[NET_SECRET_SIZE] ____cacheline_aligned; | |||
16 | 17 | ||
17 | static void net_secret_init(void) | 18 | static void net_secret_init(void) |
18 | { | 19 | { |
19 | u32 tmp; | 20 | net_get_random_once(net_secret, sizeof(net_secret)); |
20 | int i; | ||
21 | |||
22 | if (likely(net_secret[0])) | ||
23 | return; | ||
24 | |||
25 | for (i = NET_SECRET_SIZE; i > 0;) { | ||
26 | do { | ||
27 | get_random_bytes(&tmp, sizeof(tmp)); | ||
28 | } while (!tmp); | ||
29 | cmpxchg(&net_secret[--i], 0, tmp); | ||
30 | } | ||
31 | } | 21 | } |
32 | 22 | ||
33 | #ifdef CONFIG_INET | 23 | #ifdef CONFIG_INET |