Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b1f91966 authored by Yang Honggang (Joseph)'s avatar Yang Honggang (Joseph) Committed by John Stultz
Browse files

clocksource: Fix bug with max_deferment margin calculation



In order to leave a margin of 12.5% we should >> 3 not >> 5.

CC: stable@kernel.org
Signed-off-by: default avatarYang Honggang (Joseph) <eagle.rtlinux@gmail.com>
[jstultz: Modified commit subject]
Signed-off-by: default avatarJohn Stultz <john.stultz@linaro.org>
parent 6a8943d9
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -548,7 +548,7 @@ static u64 clocksource_max_deferment(struct clocksource *cs)
	 * 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
@@ -669,7 +669,7 @@ void __clocksource_updatefreq_scale(struct clocksource *cs, u32 scale, u32 freq)
	 * ~ 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)