/* The xtime_lock is not only serializing the xtime read/writes but it's also
serializing all accesses to the global NTP variables now. */
extern rwlock_t xtime_lock;
+extern unsigned long last_time_offset;
#if !defined(__alpha__) && !defined(__ia64__)
write_lock_irq(&xtime_lock);
xtime.tv_sec = value;
xtime.tv_usec = 0;
+ last_time_offset = 0;
time_adjust = 0; /* stop active adjtime() */
time_status |= STA_UNSYNC;
time_maxerror = NTP_PHASE_LIMIT;
{
write_lock_irq(&xtime_lock);
xtime.tv_sec += sys_tz.tz_minuteswest * 60;
+ last_time_offset = 0;
write_unlock_irq(&xtime_lock);
}
txc->calcnt = pps_calcnt;
txc->errcnt = pps_errcnt;
txc->stbcnt = pps_stbcnt;
+ last_time_offset = 0;
write_unlock_irq(&xtime_lock);
do_gettimeofday(&txc->time);
return(result);
* This spinlock protect us from races in SMP while playing with xtime. -arca
*/
rwlock_t xtime_lock = RW_LOCK_UNLOCKED;
+unsigned long last_time_offset;
static inline void update_times(void)
{
wall_jiffies += ticks;
update_wall_time(ticks);
}
+ last_time_offset = 0;
write_unlock_irq(&xtime_lock);
calc_load(ticks);
}