Messages in this thread Patch in this message | | | Date | 7 Jun 2014 04:28:59 -0400 | From | "George Spelvin" <> | Subject | [PATCH 6/7] lib/random32.c: Randomize timeout to the millisecond, not the second |
| |
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> --- 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); } -- 2.0.0
| |