[Linux-stm32] [PATCH 2/2] hwrng: stm32 - fix read of the last word
Lionel DEBIEVE
lionel.debieve at foss.st.com
Thu Oct 13 07:58:15 UTC 2022
On 10/12/22 18:09, Tomas Marek wrote:
> The stm32_rng_read() function samples TRNG by 4 bytes until at
> least 5 bytes are free in the input buffer. The last four bytes
> are never read. For example, 60 bytes are returned in case the
> input buffer size is 64 bytes.
>
> Read until at least 4 bytes are free in the input buffer. Fill
> the buffer entirely in case the buffer size is divisible by 4.
>
> Cc: Oleg Karfich<oleg.karfich at wago.com>
> Signed-off-by: Tomas Marek<tomas.marek at elrest.cz>
> ---
> drivers/char/hw_random/stm32-rng.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/char/hw_random/stm32-rng.c b/drivers/char/hw_random/stm32-rng.c
> index 8eaacefd498b..366edda4848b 100644
> --- a/drivers/char/hw_random/stm32-rng.c
> +++ b/drivers/char/hw_random/stm32-rng.c
> @@ -44,7 +44,7 @@ static int stm32_rng_read(struct hwrng *rng, void *data, size_t max, bool wait)
>
> pm_runtime_get_sync((struct device *) priv->rng.priv);
>
> - while (max > sizeof(u32)) {
> + while (max >= sizeof(u32)) {
> sr = readl_relaxed(priv->base + RNG_SR);
> /* Manage timeout which is based on timer and take */
> /* care of initial delay time when enabling rng */
Reviewed-by: Lionel DEBIEVE<lionel.debieve at foss.st.com>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://st-md-mailman.stormreply.com/pipermail/linux-stm32/attachments/20221013/73e80861/attachment.html>
More information about the Linux-stm32
mailing list