summaryrefslogtreecommitdiff
path: root/net/core/secure_seq.c
diff options
context:
space:
mode:
authorMark Brown <broonie@linaro.org>2013-11-24 14:35:18 +0000
committerMark Brown <broonie@linaro.org>2013-11-24 14:35:18 +0000
commit30c27abd28fa168d7ebd2e5286f1fe473c74bfa9 (patch)
tree9936b38c0c81cd430d5e75906c1207d127fe588c /net/core/secure_seq.c
parent16ec790938d4f356c82fab27b9a9adf4d6fe19a6 (diff)
parent6ce4eac1f600b34f2f7f58f9cd8f0503d79e42ae (diff)
Merge tag 'v3.13-rc1' into asoc-arizona
Linux 3.13-rc1
Diffstat (limited to 'net/core/secure_seq.c')
-rw-r--r--net/core/secure_seq.c16
1 files changed, 3 insertions, 13 deletions
diff --git a/net/core/secure_seq.c b/net/core/secure_seq.c
index 8d9d05edd2eb..897da56f3aff 100644
--- a/net/core/secure_seq.c
+++ b/net/core/secure_seq.c
@@ -7,6 +7,7 @@
#include <linux/hrtimer.h>
#include <linux/ktime.h>
#include <linux/string.h>
+#include <linux/net.h>
#include <net/secure_seq.h>
@@ -15,20 +16,9 @@
static u32 net_secret[NET_SECRET_SIZE] ____cacheline_aligned;
-static void net_secret_init(void)
+static __always_inline void net_secret_init(void)
{
- u32 tmp;
- int i;
-
- if (likely(net_secret[0]))
- return;
-
- for (i = NET_SECRET_SIZE; i > 0;) {
- do {
- get_random_bytes(&tmp, sizeof(tmp));
- } while (!tmp);
- cmpxchg(&net_secret[--i], 0, tmp);
- }
+ net_get_random_once(net_secret, sizeof(net_secret));
}
#endif