[PATCH v2] random: handle archrandom in plural words

Michael Ellerman mpe at ellerman.id.au
Sun Jul 17 23:31:11 PDT 2022


"Jason A. Donenfeld" <Jason at zx2c4.com> writes:
> The archrandom interface was originally designed for x86, which supplies
> RDRAND/RDSEED for receiving random words into registers, resulting in
> one function to generate an int and another to generate a long. However,
> other architectures don't follow this.
>
> On arm64, the SMCCC TRNG interface can return between 1 and 3 words. On
> s390, the CPACF TRNG interface can return between 1 and 32 words for the
> same cost as for one word. On UML, the os_getrandom() interface can return
> arbitrary amounts.
>
> So change the api signature to take a "words" parameter designating the
> maximum number of words requested, and then return the number of words
> generated.

On powerpc a word is 32-bits and a doubleword is 64-bits (at least
according to the ISA). I think that's also true on other 64-bit
architectures.

You could avoid any confusion by defining the API in terms of "longs"
rather than "words".

But that's just a comment, see what others think.

>  arch/powerpc/include/asm/archrandom.h |  30 ++------
>  arch/powerpc/kvm/book3s_hv.c          |   2 +-

Acked-by: Michael Ellerman <mpe at ellerman.id.au> (powerpc)

cheers



More information about the linux-arm-kernel mailing list