Change the `#ifdef CONFIG_X86' to `#ifdef CONFIG_X6not' and watch the time
jump backwards by 45 seconds occasionally.



 kernel/sleepo.c |   13 +++++++++++++
 1 files changed, 13 insertions(+)

diff -puN kernel/sleepo.c~time-goes-backwards kernel/sleepo.c
--- 25/kernel/sleepo.c~time-goes-backwards	2003-06-15 23:35:40.000000000 -0700
+++ 25-akpm/kernel/sleepo.c	2003-06-15 23:36:14.000000000 -0700
@@ -27,11 +27,24 @@ static unsigned long long grab_time(void
 #else
 	struct timeval now;
 	unsigned long long ret;
+	static unsigned long long prev;
+	static spinlock_t lock = SPIN_LOCK_UNLOCKED;
 
+	spin_lock(&lock);
 	do_gettimeofday(&now);
 	ret = now.tv_sec;
 	ret *= 1000000;
 	ret += now.tv_usec;
+	if (!prev) {
+		prev = ret;
+	} else {
+		if (ret < prev) {
+			/* gack.  gettimeofday() went backwards */
+			printk("prev:0x%016llx ret:0x%016llx\n", prev, ret);
+		}
+	}
+	prev = ret;
+	spin_unlock(&lock);
 	return ret;
 #endif
 }

_