if (time_adjust > tickadj) time_adjust_step = tickadj; else if (time_adjust < -tickadj) time_adjust_step = -tickadj; 
time_adjust_step = min(time_adjust_step, (long)tickadj); time_adjust_step = max(time_adjust_step, (long)-tickadj); 
static void update_wall_time_one_tick(void){	long time_adjust_step, delta_nsec;	if ( (time_adjust_step = time_adjust) != 0 ) {	    /* We are doing an adjtime thing. 	     *	     * Prepare time_adjust_step to be within bounds.	     * Note that a positive time_adjust means we want the clock	     * to run faster.	     *	     * Limit the amount of the step to be in the range	     * -tickadj .. +tickadj	     */	     if (time_adjust > tickadj)		time_adjust_step = tickadj;	     else if (time_adjust < -tickadj)		time_adjust_step = -tickadj;	    /* Reduce by this step the amount of time left  */	    time_adjust -= time_adjust_step;	}	delta_nsec = tick_nsec + time_adjust_step * 1000;	/*	 * Advance the phase, once it gets to one microsecond, then	 * advance the tick more.	 */	time_phase += time_adj;	if (time_phase <= -FINENSEC) {		long ltemp = -time_phase >> (SHIFT_SCALE - 10);		time_phase += ltemp << (SHIFT_SCALE - 10);		delta_nsec -= ltemp;	}	else if (time_phase >= FINENSEC) {		long ltemp = time_phase >> (SHIFT_SCALE - 10);		time_phase -= ltemp << (SHIFT_SCALE - 10);		delta_nsec += ltemp;	}	xtime.tv_nsec += delta_nsec;	time_interpolator_update(delta_nsec);	/* Changes by adjtime() do not take effect till next tick. */	if (time_next_adjust != 0) {		time_adjust = time_next_adjust;		time_next_adjust = 0;	}}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/1bb34a412750291e4e5e9f1d0fe7ae1b7e976098/timer.c/buggy/kernel/timer.c