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

From: Jan Henrik Weinstock
Date: Mon Feb 01 2021 - 10:17:16 EST


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

Signed-off-by: Jan Henrik Weinstock <jan.weinstock@xxxxxxxxxxxxxx>
---

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

Attachment: smime.p7s
Description: S/MIME Cryptographic Signature