Skip to content

Commit

Permalink
random: Adjust the number of loops when initializing
Browse files Browse the repository at this point in the history
When we are initializing using arch_get_random_long() we only need to
loop enough times to touch all the bytes in the buffer; using
poolwords for that does twice the number of operations necessary on a
64-bit machine, since in the random number generator code "word" means
32 bits.

Signed-off-by: H. Peter Anvin <[email protected]>
Cc: "Theodore Ts'o" <[email protected]>
Link: http://lkml.kernel.org/r/[email protected]
  • Loading branch information
H. Peter Anvin committed Jan 16, 2012
1 parent 3e88bdf commit 2dac8e5
Showing 1 changed file with 1 addition and 1 deletion.
2 changes: 1 addition & 1 deletion drivers/char/random.c
Original file line number Diff line number Diff line change
Expand Up @@ -975,7 +975,7 @@ static void init_std_data(struct entropy_store *r)

now = ktime_get_real();
mix_pool_bytes(r, &now, sizeof(now));
for (i = r->poolinfo->poolwords; i; i--) {
for (i = r->poolinfo->POOLBYTES; i > 0; i -= sizeof flags) {
if (!arch_get_random_long(&flags))
break;
mix_pool_bytes(r, &flags, sizeof(flags));
Expand Down

0 comments on commit 2dac8e5

Please sign in to comment.