diff -urN 2.2.15pre13/arch/i386/kernel/time.c lost_ticks/arch/i386/kernel/time.c --- 2.2.15pre13/arch/i386/kernel/time.c Sat Mar 4 18:02:00 2000 +++ lost_ticks/arch/i386/kernel/time.c Tue Mar 7 03:51:55 2000 @@ -77,6 +77,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) { @@ -237,7 +238,6 @@ */ void do_gettimeofday(struct timeval *tv) { - extern volatile unsigned long lost_ticks; unsigned long flags; unsigned long usec, sec; @@ -271,6 +271,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;