|
@@ -68,7 +68,7 @@ static irqreturn_t timer_interrupt(int irq, void *dummy, struct pt_regs * regs)
|
|
|
* CMOS clock accordingly every ~11 minutes. Set_rtc_mmss() has to be
|
|
|
* called as close as possible to 500 ms before the new second starts.
|
|
|
*/
|
|
|
- if ((time_status & STA_UNSYNC) == 0 &&
|
|
|
+ if (ntp_synced() &&
|
|
|
xtime.tv_sec > last_rtc_update + 660 &&
|
|
|
(xtime.tv_nsec / 1000) >= 500000 - ((unsigned) TICK_SIZE) / 2 &&
|
|
|
(xtime.tv_nsec / 1000) <= 500000 + ((unsigned) TICK_SIZE) / 2) {
|
|
@@ -178,10 +178,7 @@ int do_settimeofday(struct timespec *tv)
|
|
|
set_normalized_timespec(&xtime, sec, nsec);
|
|
|
set_normalized_timespec(&wall_to_monotonic, wtm_sec, wtm_nsec);
|
|
|
|
|
|
- time_adjust = 0; /* stop active adjtime() */
|
|
|
- time_status |= STA_UNSYNC;
|
|
|
- time_maxerror = NTP_PHASE_LIMIT;
|
|
|
- time_esterror = NTP_PHASE_LIMIT;
|
|
|
+ ntp_clear();
|
|
|
write_sequnlock_irq(&xtime_lock);
|
|
|
clock_was_set();
|
|
|
return 0;
|