Messages in this thread Patch in this message | | | From | "Jason A. Donenfeld" <> | Subject | [PATCH] random: do not take pool spinlock at boot | Date | Sat, 12 Feb 2022 01:28:59 +0100 |
| |
Since rand_initialize() is run while interrupts are still off and nothing else is running, we don't need to repeatedly take and release the pool spinlock, especially in the RDSEED loop.
Cc: Dominik Brodowski <linux@dominikbrodowski.net> Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com> --- Dominik - I'm still a bit unclear about early boot semantics that you seem to know well. Is this patch correct?
drivers/char/random.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/drivers/char/random.c b/drivers/char/random.c index d4b692c9de68..8088348190e6 100644 --- a/drivers/char/random.c +++ b/drivers/char/random.c @@ -966,10 +966,10 @@ int __init rand_initialize(void) rv = random_get_entropy(); arch_init = false; } - mix_pool_bytes(&rv, sizeof(rv)); + _mix_pool_bytes(&rv, sizeof(rv)); } - mix_pool_bytes(&now, sizeof(now)); - mix_pool_bytes(utsname(), sizeof(*(utsname()))); + _mix_pool_bytes(&now, sizeof(now)); + _mix_pool_bytes(utsname(), sizeof(*(utsname()))); extract_entropy(base_crng.key, sizeof(base_crng.key)); ++base_crng.generation; -- 2.35.0
| |