From: John Stultz Date: Fri, 22 Feb 2013 20:33:29 +0000 (-0800) Subject: timekeeping: Use inject_offset in warp_clock X-Git-Tag: upstream/snapshot3+hdmi~5269^2~25^2~14 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=7859e404ae73fe4f38b8cfc1af19ea82f153084e;p=platform%2Fadaptation%2Frenesas_rcar%2Frenesas_kernel.git 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 --- diff --git a/kernel/time.c b/kernel/time.c index effac57..d3617db 100644 --- a/kernel/time.c +++ b/kernel/time.c @@ -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); } }