mbox series

[0/4] hw_random: introduce rng_quality sysfs attribute

Message ID 20220213204631.354247-1-linux@dominikbrodowski.net (mailing list archive)
Headers show
Series hw_random: introduce rng_quality sysfs attribute | expand

Message

Dominik Brodowski Feb. 13, 2022, 8:46 p.m. UTC
Currently, the hw_random core exposes a module parameter "current_quality".
However, that is fundamentally broken: If it is set at boot time, it is
overwritten once the first hw rng device is loaded. If it is set at
runtime, it is without effect if the hw rng device had its quality value
set to 0 (and no default_quality was set). If a new rng is selected, it
gets overwritten.

Therefore, let's mark it as obsolete, and replace it with a new sysfs
attribute named "rng_quality". This sets the quality setting of the
hw rng device currently loaded and active, and starts/stops the hwrng
kernel thread as required.

Dominik Brodowski (4):
  hw_random: do not bother to order list of devices by quality
  hw_random: start and stop in-kernel rngd in separate function
  hw_random: use per-rng quality value instead of global setting
  hw_random: introduce rng_quality sysfs attribute

 drivers/char/hw_random/core.c | 145 +++++++++++++++++++++++++---------
 1 file changed, 107 insertions(+), 38 deletions(-)

---
If preferred, the "current_quality" module parameter can be removed
altogether.

Comments

Herbert Xu Feb. 23, 2022, 2:45 a.m. UTC | #1
On Sun, Feb 13, 2022 at 09:46:27PM +0100, Dominik Brodowski wrote:
> Currently, the hw_random core exposes a module parameter "current_quality".
> However, that is fundamentally broken: If it is set at boot time, it is
> overwritten once the first hw rng device is loaded. If it is set at
> runtime, it is without effect if the hw rng device had its quality value
> set to 0 (and no default_quality was set). If a new rng is selected, it
> gets overwritten.
> 
> Therefore, let's mark it as obsolete, and replace it with a new sysfs
> attribute named "rng_quality". This sets the quality setting of the
> hw rng device currently loaded and active, and starts/stops the hwrng
> kernel thread as required.
> 
> Dominik Brodowski (4):
>   hw_random: do not bother to order list of devices by quality
>   hw_random: start and stop in-kernel rngd in separate function
>   hw_random: use per-rng quality value instead of global setting
>   hw_random: introduce rng_quality sysfs attribute
> 
>  drivers/char/hw_random/core.c | 145 +++++++++++++++++++++++++---------
>  1 file changed, 107 insertions(+), 38 deletions(-)

All applied.  Thanks.