timekeeping: Avoid adjust kernel time once hwclock kept in UTC time
authorDong Zhu <bluezhudong@gmail.com>
Thu, 6 Dec 2012 14:03:34 +0000 (22:03 +0800)
committerJohn Stultz <john.stultz@linaro.org>
Fri, 15 Mar 2013 23:50:12 +0000 (16:50 -0700)
If the Hardware Clock kept in local time,kernel will adjust the time
to be UTC time.But if Hardware Clock kept in UTC time,system will make
a dummy settimeofday call first (sys_tz.tz_minuteswest = 0) to make sure
the time is not shifted,so at this point I think maybe it is not necessary
to set the kernel time once the sys_tz.tz_minuteswest is zero.

Signed-off-by: Dong Zhu <bluezhudong@gmail.com>
[jstultz: Updated to merge with conflicting changes ]
Signed-off-by: John Stultz <john.stultz@linaro.org>
kernel/time.c

index f8342a4..effac57 100644 (file)
@@ -138,13 +138,14 @@ int persistent_clock_is_local;
  */
 static inline void warp_clock(void)
 {
-       struct timespec adjust;
+       if (sys_tz.tz_minuteswest != 0) {
+               struct timespec adjust;
 
-       adjust = current_kernel_time();
-       if (sys_tz.tz_minuteswest != 0)
                persistent_clock_is_local = 1;
-       adjust.tv_sec += sys_tz.tz_minuteswest * 60;
-       do_settimeofday(&adjust);
+               adjust = current_kernel_time();
+               adjust.tv_sec += sys_tz.tz_minuteswest * 60;
+               do_settimeofday(&adjust);
+       }
 }
 
 /*