[PATCH v3] random: handle archrandom with multiple longs

Jason A. Donenfeld Jason at zx2c4.com
Mon Jul 25 19:37:23 AEST 2022


On Mon, Jul 25, 2022 at 11:36 AM David Laight <David.Laight at aculab.com> wrote:
>
> ...
> > More directly, the reason we don't want to error is because the use case
> > has fallbacks meant to handle errors. The cascade looks like this
> > (quoting from the other email):
> >
> >     unsigned long array[whatever];
> >     for (i = 0; i < ARRAY_SIZE(array);) {
> >         longs = arch_get_random_seed_longs(&array[i], ARRAY_SIZE(array) - i);
> >         if (longs) {
> >             i += longs;
> >             continue;
> >         }
> >         longs = arch_get_random_longs(&array[i], ARRAY_SIZE(array) - i);
> >         if (longs) {
> >             i += longs;
> >             continue;
> >         }
> >         array[i++] = random_get_entropy();
> >     }
> >
> > It tries to get the best that it can as much as it can, but isn't going
> > to block or do anything too nuts for that.
>
> Do you really want to retry the earlier calls that returned no data?

Does the above code do that?


More information about the Linuxppc-dev mailing list