timekeeping: Use inject_offset in warp_clock
When warping the clock (from a local time RTC), use timekeeping_inject_offset() to atomically add the offset. This avoids any minor time error caused by the delay between reading the time, and then setting the adjusted time. Signed-off-by: John Stultz <john.stultz@linaro.org>
This commit is contained in:
parent
c30bd09915
commit
7859e404ae
|
@ -142,9 +142,9 @@ static inline void warp_clock(void)
|
|||
struct timespec adjust;
|
||||
|
||||
persistent_clock_is_local = 1;
|
||||
adjust = current_kernel_time();
|
||||
adjust.tv_sec += sys_tz.tz_minuteswest * 60;
|
||||
do_settimeofday(&adjust);
|
||||
adjust.tv_sec = sys_tz.tz_minuteswest * 60;
|
||||
adjust.tv_nsec = 0;
|
||||
timekeeping_inject_offset(&adjust);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue