watchdog: Fix rounding bug in get_sample_period()
Mandeep Singh Baines [Mon, 23 May 2011 05:10:20 +0000 (22:10 -0700)]
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 14733d4..a06972d 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 */