From fb5cad1dc38a5b62432a937645397e7fe7ed860e Mon Sep 17 00:00:00 2001 From: "kaf24@scramble.cl.cam.ac.uk" Date: Tue, 21 Dec 2004 16:14:52 +0000 Subject: [PATCH] bitkeeper revision 1.1159.187.73 (41c84bfcHrB3tsqtfHhmJsD8FvwR_Q) Fix gettimeofday and settimeofday to account system time that has not yet been processed by the timer ISR. --- linux-2.4.28-xen-sparse/arch/xen/kernel/time.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/linux-2.4.28-xen-sparse/arch/xen/kernel/time.c b/linux-2.4.28-xen-sparse/arch/xen/kernel/time.c index 0a04c6c3b6..04ceb5e0d4 100644 --- a/linux-2.4.28-xen-sparse/arch/xen/kernel/time.c +++ b/linux-2.4.28-xen-sparse/arch/xen/kernel/time.c @@ -266,6 +266,9 @@ void do_gettimeofday(struct timeval *tv) _tv.tv_sec = xtime.tv_sec; _tv.tv_usec += xtime.tv_usec; + _tv.tv_usec += + (unsigned long)(shadow_system_time - processed_system_time) / 1000UL; + if ( unlikely(!TIME_VALUES_UP_TO_DATE) ) { /* @@ -315,6 +318,8 @@ void do_settimeofday(struct timeval *tv) */ again: usec = tv->tv_usec - __get_time_delta_usecs(); + usec -= + (unsigned long)(shadow_system_time - processed_system_time) / 1000UL; if ( unlikely(!TIME_VALUES_UP_TO_DATE) ) { __get_time_values_from_xen(); -- 2.39.5