[PATCH v2 1/2] lib: uuid: use RNG device if present

Torsten Duwe duwe at lst.de
Fri Dec 18 09:37:28 CET 2020


On Wed, 16 Dec 2020 17:28:06 +0100
matthias.bgg at kernel.org wrote:

> @@ -249,9 +251,22 @@ void gen_rand_uuid(unsigned char *uuid_bin)
>  {
>  	u32 ptr[4];
>  	struct uuid *uuid = (struct uuid *)ptr;
> -	int i;
> -
> -	srand(get_ticks() + rand());
> +	int i, ret;
> +	struct udevice *devp;
> +	u8 randv = 0;
	^^
Only 1 byte? The UUID could use some more, and, having a HW RNG, it
doesn't hurt to seed it with more entropy here. I suggest using u32 as
well.

> +
> +#if defined(CONFIG_DM_RNG)
> +	ret = uclass_get_device(UCLASS_RNG, 0, &devp);
> +	if (ret) {
> +		ret = dm_rng_read(devp, &randv, sizeof(randv));
> +		if (ret < 0)
> +			randv = 0;
> +	}

See my reply to the cover letter. I'd suggest to wrap this with
	if (IS_ENABLED(CONFIG_DM_RNG))
instead, likewise for the MAC.

	Torsten


More information about the U-Boot mailing list