On Thu, Dec 06, 2012 at 10:03:34PM +0800, Dong Zhu wrote:Sorry for the slow response, been a little busy. Honestly the warp_clock() code path is always been a bit odd to me, so I've not really been able to get my head around the implications of this change.From c126376cf1837b0956e0268056db61870fbbc1d4 Mon Sep 17 00:00:00 2001Hi,
From: Dong Zhu <bluezhudong@xxxxxxxxx>
Date: Thu, 6 Dec 2012 21:45:00 +0800
Subject: [PATCH] timekeeping: avoid adjust kernel time once hwclock kept in
UTC time
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@xxxxxxxxx>
---
kernel/time.c | 8 +++++---
1 file changed, 5 insertions(+), 3 deletions(-)
diff --git a/kernel/time.c b/kernel/time.c
index d226c6a..0b592ce 100644
--- a/kernel/time.c
+++ b/kernel/time.c
@@ -134,9 +134,11 @@ static inline void warp_clock(void)
{
struct timespec adjust;
- adjust = current_kernel_time();
- adjust.tv_sec += sys_tz.tz_minuteswest * 60;
- do_settimeofday(&adjust);
+ if (sys_tz.tz_minuteswest) {
+ adjust = current_kernel_time();
+ adjust.tv_sec += sys_tz.tz_minuteswest * 60;
+ do_settimeofday(&adjust);
+ }
}
/*
--
1.7.11.7
Any comments ?