| From b1f919664d04a8d0ba29cb76673c7ca3325a2006 Mon Sep 17 00:00:00 2001 |
| From: "Yang Honggang (Joseph)" <eagle.rtlinux@gmail.com> |
| Date: Thu, 1 Dec 2011 22:22:41 -0500 |
| Subject: clocksource: Fix bug with max_deferment margin calculation |
| |
| From: "Yang Honggang (Joseph)" <eagle.rtlinux@gmail.com> |
| |
| commit b1f919664d04a8d0ba29cb76673c7ca3325a2006 upstream. |
| |
| In order to leave a margin of 12.5% we should >> 3 not >> 5. |
| |
| Signed-off-by: Yang Honggang (Joseph) <eagle.rtlinux@gmail.com> |
| [jstultz: Modified commit subject] |
| Signed-off-by: John Stultz <john.stultz@linaro.org> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> |
| |
| --- |
| kernel/time/clocksource.c | 4 ++-- |
| 1 file changed, 2 insertions(+), 2 deletions(-) |
| |
| --- a/kernel/time/clocksource.c |
| +++ b/kernel/time/clocksource.c |
| @@ -531,7 +531,7 @@ static u64 clocksource_max_deferment(str |
| * note a margin of 12.5% is used because this can be computed with |
| * a shift, versus say 10% which would require division. |
| */ |
| - return max_nsecs - (max_nsecs >> 5); |
| + return max_nsecs - (max_nsecs >> 3); |
| } |
| |
| #ifndef CONFIG_ARCH_USES_GETTIMEOFFSET |
| @@ -653,7 +653,7 @@ void __clocksource_updatefreq_scale(stru |
| * ~ 0.06ppm granularity for NTP. We apply the same 12.5% |
| * margin as we do in clocksource_max_deferment() |
| */ |
| - sec = (cs->mask - (cs->mask >> 5)); |
| + sec = (cs->mask - (cs->mask >> 3)); |
| do_div(sec, freq); |
| do_div(sec, scale); |
| if (!sec) |