2022-05-13 13:05:03

by Dominik Brodowski

[permalink] [raw]
Subject: Re: [PATCH] random: credit architectural init the exact amount

Am Thu, May 12, 2022 at 03:38:35PM +0200 schrieb Jason A. Donenfeld:
> RDRAND and RDSEED can fail sometimes, which is fine. We currently
> initialize the RNG with 512 bits of RDRAND/RDSEED. We only need 256 bits
> of those to succeed in order to initialize the RNG. Instead of the
> current "all or nothing" approach, actually credit these contributions
> the amount that is actually contributed.
>
> Signed-off-by: Jason A. Donenfeld <[email protected]>
> ---
> drivers/char/random.c | 12 ++++++------
> 1 file changed, 6 insertions(+), 6 deletions(-)
>
> diff --git a/drivers/char/random.c b/drivers/char/random.c
> index bd80d74a7f8c..9ffa41c5e092 100644
> --- a/drivers/char/random.c
> +++ b/drivers/char/random.c
> @@ -934,9 +934,8 @@ static struct notifier_block pm_notifier = { .notifier_call = random_pm_notifica
> */
> int __init random_init(const char *command_line)
> {
> - size_t i;
> ktime_t now = ktime_get_real();
> - bool arch_init = true;
> + unsigned int i, arch_init;

Maybe s/arch_init/arch_init_cnt/g to clarify that this is now used as a
counter?

Otherwise, looks good:

Reviewed-by: Dominik Brodowski <[email protected]>

Thanks,
Dominik


2022-05-14 04:08:59

by Jason A. Donenfeld

[permalink] [raw]
Subject: Re: [PATCH] random: credit architectural init the exact amount

Hi Dominik,

On Fri, May 13, 2022 at 08:18:30AM +0200, Dominik Brodowski wrote:
> > - bool arch_init = true;
> > + unsigned int i, arch_init;
>
> Maybe s/arch_init/arch_init_cnt/g to clarify that this is now used as a
> counter?

Good idea. I'll call it arch_bytes, which will make the `* 8` lower down
more obviously doing bytes->bits.

Jason