Commit c2bc3a316a7281f67e36b34dac2802cbe36a9128

Authored by Linus Torvalds

Merge branch 'x86/rdrand' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip

* 'x86/rdrand' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
  random: Adjust the number of loops when initializing
  random: Use arch-specific RNG to initialize the entropy store

Showing 1 changed file Side-by-side Diff

drivers/char/random.c
... ... @@ -965,6 +965,7 @@
965 965 */
966 966 static void init_std_data(struct entropy_store *r)
967 967 {
  968 + int i;
968 969 ktime_t now;
969 970 unsigned long flags;
970 971  
... ... @@ -974,6 +975,11 @@
974 975  
975 976 now = ktime_get_real();
976 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 983 mix_pool_bytes(r, utsname(), sizeof(*(utsname())));
978 984 }
979 985