watchdog: Fix rounding bug in get_sample_period()
authorMandeep Singh Baines <msb@chromium.org>
Mon, 23 May 2011 05:10:20 +0000 (22:10 -0700)
committerIngo Molnar <mingo@elte.hu>
Mon, 23 May 2011 09:58:58 +0000 (11:58 +0200)
In get_sample_period(), softlockup_thresh is integer divided by
5 before the multiplication by NSEC_PER_SEC. This results in
softlockup_thresh being rounded down to the nearest integer
multiple of 5.

For example, a softlockup_thresh of 4 rounds down to 0.

Signed-off-by: Mandeep Singh Baines <msb@chromium.org>
Cc: Marcin Slusarz <marcin.slusarz@gmail.com>
Cc: Don Zickus <dzickus@redhat.com>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Frederic Weisbecker <fweisbec@gmail.com>
Link: http://lkml.kernel.org/r/1306127423-3347-1-git-send-email-msb@chromium.org
Signed-off-by: Ingo Molnar <mingo@elte.hu>
kernel/watchdog.c

index 14733d4d156b5e90603cafec70eb9907b141b6dd..a06972d71060f923c7919a8c188cf00471a333e6 100644 (file)
@@ -110,7 +110,7 @@ static unsigned long get_sample_period(void)
         * increment before the hardlockup detector generates
         * a warning
         */
-       return softlockup_thresh / 5 * NSEC_PER_SEC;
+       return softlockup_thresh * (NSEC_PER_SEC / 5);
 }
 
 /* Commands for resetting the watchdog */