]> git.kernelconcepts.de Git - karo-tx-linux.git/blobdiff - lib/random32.c
kgdb: remove unused HAVE_ARCH_KGDB_SHADOW_INFO config variable
[karo-tx-linux.git] / lib / random32.c
index 4a15ce51cea78f4843106221f3db13745b1eb4d7..ca87d86992bdb7bfd6bb30d4dbe6dcefe2bab7b9 100644 (file)
@@ -36,6 +36,7 @@
 #include <linux/types.h>
 #include <linux/percpu.h>
 #include <linux/module.h>
+#include <linux/jiffies.h>
 #include <linux/random.h>
 
 struct rnd_state {
@@ -96,13 +97,18 @@ EXPORT_SYMBOL(random32);
  *     @seed: seed value
  *
  *     Add some additional seeding to the random32() pool.
- *     Note: this pool is per cpu so it only affects current CPU.
  */
 void srandom32(u32 entropy)
 {
-       struct rnd_state *state = &get_cpu_var(net_rand_state);
-       __set_random32(state, state->s1 ^ entropy);
-       put_cpu_var(state);
+       int i;
+       /*
+        * No locking on the CPUs, but then somewhat random results are, well,
+        * expected.
+        */
+       for_each_possible_cpu (i) {
+               struct rnd_state *state = &per_cpu(net_rand_state, i);
+               __set_random32(state, state->s1 ^ entropy);
+       }
 }
 EXPORT_SYMBOL(srandom32);