diff -urN 2.3.51pre2/arch/i386/kernel/time.c lost_ticks/arch/i386/kernel/time.c --- 2.3.51pre2/arch/i386/kernel/time.c Sun Jan 30 15:43:27 2000 +++ lost_ticks/arch/i386/kernel/time.c Fri Mar 10 05:09:06 2000 @@ -79,6 +79,7 @@ unsigned long fast_gettimeoffset_quotient=0; extern rwlock_t xtime_lock; +extern volatile unsigned long lost_ticks; static inline unsigned long do_fast_gettimeoffset(void) { @@ -238,7 +239,6 @@ */ void do_gettimeofday(struct timeval *tv) { - extern volatile unsigned long lost_ticks; unsigned long flags; unsigned long usec, sec; @@ -272,6 +272,7 @@ * would have done, and then undo it! */ tv->tv_usec -= do_gettimeoffset(); + tv->tv_usec -= lost_ticks * (1000000 / HZ); while (tv->tv_usec < 0) { tv->tv_usec += 1000000;