Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d9e79726 authored by Kees Cook's avatar Kees Cook Committed by Herbert Xu
Browse files

hwrng: add randomness to system from rng sources



When bringing a new RNG source online, it seems like it would make sense
to use some of its bytes to make the system entropy pool more random,
as done with all sorts of other devices that contain per-device or
per-boot differences.

Signed-off-by: default avatarKees Cook <keescook@chromium.org>
Reviewed-by: default avatarJason Cooper <jason@lakedaemon.net>
Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
parent 04d088cc
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -41,6 +41,7 @@
#include <linux/miscdevice.h>
#include <linux/delay.h>
#include <linux/slab.h>
#include <linux/random.h>
#include <asm/uaccess.h>


@@ -304,6 +305,8 @@ int hwrng_register(struct hwrng *rng)
{
	int err = -EINVAL;
	struct hwrng *old_rng, *tmp;
	unsigned char bytes[16];
	int bytes_read;

	if (rng->name == NULL ||
	    (rng->data_read == NULL && rng->read == NULL))
@@ -344,6 +347,10 @@ int hwrng_register(struct hwrng *rng)
	}
	INIT_LIST_HEAD(&rng->list);
	list_add_tail(&rng->list, &rng_list);

	bytes_read = rng_get_data(rng, bytes, sizeof(bytes), 1);
	if (bytes_read > 0)
		add_device_randomness(bytes, bytes_read);
out_unlock:
	mutex_unlock(&rng_mutex);
out: