clocksource: Simplify the clocks_calc_max_nsecs() logic
authorJohn Stultz <john.stultz@linaro.org>
Thu, 12 Mar 2015 04:16:29 +0000 (21:16 -0700)
committerIngo Molnar <mingo@kernel.org>
Thu, 12 Mar 2015 09:16:38 +0000 (10:16 +0100)
commit6086e346fdea1ae64d974c94c1acacc2605567ae
tree9da654f78319b3ebc583896db20c2413a62c6b8f
parent0bbdb4258bd116d8cd5d209e8d5b29bae516e5b3
clocksource: Simplify the clocks_calc_max_nsecs() logic

The previous clocks_calc_max_nsecs() code had some unecessarily
complex bit logic to find the max interval that could cause
multiplication overflows. Since this is not in the hot
path, just do the divide to make it easier to read.

The previous implementation also had a subtle issue
that it avoided overflows with signed 64-bit values, where
as the intervals are always unsigned. This resulted in
overly conservative intervals, which other safety margins
were then added to, reducing the intended interval length.

Signed-off-by: John Stultz <john.stultz@linaro.org>
Cc: Dave Jones <davej@codemonkey.org.uk>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Prarit Bhargava <prarit@redhat.com>
Cc: Richard Cochran <richardcochran@gmail.com>
Cc: Stephen Boyd <sboyd@codeaurora.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Link: http://lkml.kernel.org/r/1426133800-29329-2-git-send-email-john.stultz@linaro.org
Signed-off-by: Ingo Molnar <mingo@kernel.org>
kernel/time/clocksource.c