diff options
Diffstat (limited to 'arch/ppc')
-rw-r--r-- | arch/ppc/kernel/time.c | 7 |
1 files changed, 2 insertions, 5 deletions
diff --git a/arch/ppc/kernel/time.c b/arch/ppc/kernel/time.c index bf4ddca5e853..a3c5281a5d2d 100644 --- a/arch/ppc/kernel/time.c +++ b/arch/ppc/kernel/time.c | |||
@@ -169,7 +169,7 @@ void timer_interrupt(struct pt_regs * regs) | |||
169 | * We should have an rtc call that only sets the minutes and | 169 | * We should have an rtc call that only sets the minutes and |
170 | * seconds like on Intel to avoid problems with non UTC clocks. | 170 | * seconds like on Intel to avoid problems with non UTC clocks. |
171 | */ | 171 | */ |
172 | if ( ppc_md.set_rtc_time && (time_status & STA_UNSYNC) == 0 && | 172 | if ( ppc_md.set_rtc_time && ntp_synced() && |
173 | xtime.tv_sec - last_rtc_update >= 659 && | 173 | xtime.tv_sec - last_rtc_update >= 659 && |
174 | abs((xtime.tv_nsec / 1000) - (1000000-1000000/HZ)) < 500000/HZ && | 174 | abs((xtime.tv_nsec / 1000) - (1000000-1000000/HZ)) < 500000/HZ && |
175 | jiffies - wall_jiffies == 1) { | 175 | jiffies - wall_jiffies == 1) { |
@@ -271,10 +271,7 @@ int do_settimeofday(struct timespec *tv) | |||
271 | */ | 271 | */ |
272 | last_rtc_update = new_sec - 658; | 272 | last_rtc_update = new_sec - 658; |
273 | 273 | ||
274 | time_adjust = 0; /* stop active adjtime() */ | 274 | ntp_clear(); |
275 | time_status |= STA_UNSYNC; | ||
276 | time_maxerror = NTP_PHASE_LIMIT; | ||
277 | time_esterror = NTP_PHASE_LIMIT; | ||
278 | write_sequnlock_irqrestore(&xtime_lock, flags); | 275 | write_sequnlock_irqrestore(&xtime_lock, flags); |
279 | clock_was_set(); | 276 | clock_was_set(); |
280 | return 0; | 277 | return 0; |