2021-02-01 15:19:46

by Jan Henrik Weinstock

[permalink] [raw]
Subject: [PATCH] hw_random/timeriomem-rng: Fix cooldown period calculation

Ensure cooldown period tolerance of 1% is actually accounted for.

Signed-off-by: Jan Henrik Weinstock <[email protected]>
---

Before patch, if period_us was less than 100us, no extra sleep time was
added. If it was more than 100us, only 1us extra time (and not 1%) is slept.

drivers/char/hw_random/timeriomem-rng.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/char/hw_random/timeriomem-rng.c
b/drivers/char/hw_random/timeriomem-rng.c
index e262445fe..f35f0f31f 100644
--- a/drivers/char/hw_random/timeriomem-rng.c
+++ b/drivers/char/hw_random/timeriomem-rng.c
@@ -69,7 +69,7 @@ static int timeriomem_rng_read(struct hwrng *hwrng,
void *data,
*/
if (retval > 0)
usleep_range(period_us,
- period_us + min(1, period_us / 100));
+ period_us + max(1, period_us / 100));

*(u32 *)data = readl(priv->io_base);
retval += sizeof(u32);
--
2.17.1


Attachments:
smime.p7s (5.19 kB)
S/MIME Cryptographic Signature