Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
[linux-drm-fsl-dcu.git] / net / core / secure_seq.c
index 8d9d05edd2eb1e66024311c62c6b7679c52bdc7d..897da56f3affae13161d4610989667a82244c308 100644 (file)
@@ -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>
 
 
 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