Re: [PATCH 6/7] lib/random32.c: Randomize timeout to the millisecond, not the second

Daniel Borkmann
2014-06-08T10:43:12Z

On 06/07/2014 10:28 AM, George Spelvin wrote:
> If you're going to bother randomizing it, do it right.
> And use prandom_u32_max(), which is designed for the job, rather
> than "% 40".
>
> Signed-off-by: George Spelvin <linux@horizon.com>

Fine by me this cleanup, although not strictly needed.

> ---
> lib/random32.c | 6 +++---
> 1 file changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/lib/random32.c b/lib/random32.c
> index eee60100..9cc410dd 100644
> --- a/lib/random32.c
> +++ b/lib/random32.c
> @@ -208,14 +208,14 @@ static DEFINE_TIMER(seed_timer, __prandom_timer, 0, 0);
> static void __prandom_timer(unsigned long dontcare)
> {
> u32 entropy;
> - unsigned long expires;
> + unsigned int expires;
>
> get_random_bytes(&entropy, sizeof(entropy));
> prandom_seed(entropy);
>
> /* reseed every ~60 seconds, in [40 .. 80) interval with slack */
> - expires = 40 + (prandom_u32() % 40);
> - seed_timer.expires = jiffies + msecs_to_jiffies(expires * MSEC_PER_SEC);
> + expires = 40000 + prandom_u32_max(40000);
> + seed_timer.expires = jiffies + msecs_to_jiffies(expires);
>
> add_timer(&seed_timer);
> }
>