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