aboutsummaryrefslogtreecommitdiffstats
path: root/net/core
diff options
context:
space:
mode:
authorHannes Frederic Sowa <hannes@stressinduktion.org>2013-10-19 15:48:59 -0400
committerDavid S. Miller <davem@davemloft.net>2013-10-19 19:45:36 -0400
commite34c9a69970d8664a36b46e6445a7cc879111cfd (patch)
tree68768a3e760a90b2b13a8e7a83d573c0e63a4a35 /net/core
parent222e83d2e0aecb6a5e8d42b1a8d51332a1eba960 (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.c14
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
17static void net_secret_init(void) 18static 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