Re: [PATCH] random: throttle hwrng writes if no entropy is credited

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Jason,

thanks for splitting this change out of my other patch. You can add my
Signed-off-by, but I'd like to suggest rewriting the commit message as
follows (please modify as needed):


In case a hwrng source does not provide (trusted) entropy, it cannot
assist in initializing the CRNG. Therefore, in case
add_hwgenerator_randomness() is called with the entropy parameter set
to zero, go to sleep until one reseed interval has passed.

While the hwrng thread currently only runs under conditions where this
is non-zero, this change is not harmful and prepares for future updates
to the hwrng core.


Thanks,
	Dominik




Am Tue, Sep 20, 2022 at 04:14:38PM +0200 schrieb Jason A. Donenfeld:
> This value is currently never set to zero, because the hwrng thread only
> runs if it's going to be non-zero. This is an oversight, however, that
> Dominik is working on fixing. In preparation for this, and so that
> there's less coordination required between my tree and Herbert's, make
> this currently useless, but not harmful, change here now, in hopes that
> Dominik can make the corresponding change in the hwrng core later.
> 
> Cc: Dominik Brodowski <linux@xxxxxxxxxxxxxxxxxxxx>
> Cc: Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx>
> Signed-off-by: Jason A. Donenfeld <Jason@xxxxxxxxx>
> ---
>  drivers/char/random.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/char/random.c b/drivers/char/random.c
> index 16e0c5f6cf2f..520a385c7dab 100644
> --- a/drivers/char/random.c
> +++ b/drivers/char/random.c
> @@ -865,9 +865,9 @@ void add_hwgenerator_randomness(const void *buf, size_t len, size_t entropy)
>  
>  	/*
>  	 * Throttle writing to once every reseed interval, unless we're not yet
> -	 * initialized.
> +	 * initialized or no entropy is credited.
>  	 */
> -	if (!kthread_should_stop() && crng_ready())
> +	if (!kthread_should_stop() && (crng_ready() || !entropy))
>  		schedule_timeout_interruptible(crng_reseed_interval());
>  }
>  EXPORT_SYMBOL_GPL(add_hwgenerator_randomness);
> -- 
> 2.37.3
> 



[Index of Archives]     [Kernel]     [Gnu Classpath]     [Gnu Crypto]     [DM Crypt]     [Netfilter]     [Bugtraq]
  Powered by Linux