Re: [PATCH v2] random: unify early init crng load accounting

From: Eric Biggers
Date: Mon Feb 21 2022 - 14:18:45 EST


On Mon, Feb 21, 2022 at 04:24:56PM +0100, Jason A. Donenfeld wrote:
> crng_fast_load() and crng_slow_load() have different semantics:
>
> - crng_fast_load() xors and accounts with crng_init_cnt.
> - crng_slow_load() hashes and doesn't account.
>
> However add_hwgenerator_randomness() can afford to hash (it's called
> from a kthread), and it should account. Additionally, ones that can
> afford to hash don't need to take a trylock but can take a normal lock.
> So, we combine these into one function, crng_pre_init_inject(), which
> allows us to control these in a uniform way. This will make it simpler
> later to simplify this all down when the time comes for that.
>
> Cc: Theodore Ts'o <tytso@xxxxxxx>
> Reviewed-by: Dominik Brodowski <linux@xxxxxxxxxxxxxxxxxxxx>
> Signed-off-by: Jason A. Donenfeld <Jason@xxxxxxxxx>
> ---
> Changes v1->v2:
> - cp -> input,
> - fix comment reference to old function,
> - fix brace style.
>
> drivers/char/random.c | 112 ++++++++++++++++++++++--------------------
> 1 file changed, 58 insertions(+), 54 deletions(-)

Reviewed-by: Eric Biggers <ebiggers@xxxxxxxxxx>

- Eric