if ((time_status & STA_UNSYNC) == 0 && 
if (ntp_synced() && 
void ip27_rt_timer_interrupt(struct pt_regs *regs){	int cpu = smp_processor_id();	int cpuA = cputoslice(cpu) == 0;	int irq = 9;				/* XXX Assign number */	irq_enter();	write_seqlock(&xtime_lock);again:	LOCAL_HUB_S(cpuA ? PI_RT_PEND_A : PI_RT_PEND_B, 0);	/* Ack  */	ct_cur[cpu] += CYCLES_PER_JIFFY;	LOCAL_HUB_S(cpuA ? PI_RT_COMPARE_A : PI_RT_COMPARE_B, ct_cur[cpu]);	if (LOCAL_HUB_L(PI_RT_COUNT) >= ct_cur[cpu])		goto again;	kstat_this_cpu.irqs[irq]++;		/* kstat only for bootcpu? */	if (cpu == 0)		do_timer(regs);	update_process_times(user_mode(regs));	/*	 * If we have an externally synchronized Linux clock, then update	 * RTC clock accordingly every ~11 minutes. Set_rtc_mmss() has to be	 * called as close as possible to when a second starts.	 */	if ((time_status & STA_UNSYNC) == 0 &&	    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) {		if (rtc_set_time(xtime.tv_sec) == 0) {			last_rtc_update = xtime.tv_sec;		} else {			last_rtc_update = xtime.tv_sec - 600;			/* do it again in 60 s */		}	}	write_sequnlock(&xtime_lock);	irq_exit();}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/b149ee2233edf08fb59b11e879a2c5941929bcb8/ip27-timer.c/buggy/arch/mips/sgi-ip27/ip27-timer.c