aboutsummaryrefslogtreecommitdiffstats
path: root/kernel/time
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/time')
-rw-r--r--kernel/time/ntp.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/kernel/time/ntp.c b/kernel/time/ntp.c
index 313b161504b7..b10a42bb0165 100644
--- a/kernel/time/ntp.c
+++ b/kernel/time/ntp.c
@@ -511,13 +511,17 @@ static void sync_cmos_clock(struct work_struct *work)
511 511
512 getnstimeofday(&now); 512 getnstimeofday(&now);
513 if (abs(now.tv_nsec - (NSEC_PER_SEC / 2)) <= tick_nsec / 2) { 513 if (abs(now.tv_nsec - (NSEC_PER_SEC / 2)) <= tick_nsec / 2) {
514 struct timespec adjust = now;
515
514 fail = -ENODEV; 516 fail = -ENODEV;
517 if (persistent_clock_is_local)
518 adjust.tv_sec -= (sys_tz.tz_minuteswest * 60);
515#ifdef CONFIG_GENERIC_CMOS_UPDATE 519#ifdef CONFIG_GENERIC_CMOS_UPDATE
516 fail = update_persistent_clock(now); 520 fail = update_persistent_clock(adjust);
517#endif 521#endif
518#ifdef CONFIG_RTC_SYSTOHC 522#ifdef CONFIG_RTC_SYSTOHC
519 if (fail == -ENODEV) 523 if (fail == -ENODEV)
520 fail = rtc_set_ntp_time(now); 524 fail = rtc_set_ntp_time(adjust);
521#endif 525#endif
522 } 526 }
523 527