aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/char/random.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/char/random.c b/drivers/char/random.c
index 732215b805c1..54ca8b23cde3 100644
--- a/drivers/char/random.c
+++ b/drivers/char/random.c
@@ -965,6 +965,7 @@ EXPORT_SYMBOL(get_random_bytes);
965 */ 965 */
966static void init_std_data(struct entropy_store *r) 966static void init_std_data(struct entropy_store *r)
967{ 967{
968 int i;
968 ktime_t now; 969 ktime_t now;
969 unsigned long flags; 970 unsigned long flags;
970 971
@@ -974,6 +975,11 @@ static void init_std_data(struct entropy_store *r)
974 975
975 now = ktime_get_real(); 976 now = ktime_get_real();
976 mix_pool_bytes(r, &now, sizeof(now)); 977 mix_pool_bytes(r, &now, sizeof(now));
978 for (i = r->poolinfo->POOLBYTES; i > 0; i -= sizeof flags) {
979 if (!arch_get_random_long(&flags))
980 break;
981 mix_pool_bytes(r, &flags, sizeof(flags));
982 }
977 mix_pool_bytes(r, utsname(), sizeof(*(utsname()))); 983 mix_pool_bytes(r, utsname(), sizeof(*(utsname())));
978} 984}
979 985