 include/linux/jiffies.h |   18 ++++--------------
 kernel/ksyms.c          |    3 +++
 kernel/time.c           |   15 ++++++++++++++-
 3 files changed, 21 insertions(+), 15 deletions(-)

diff -puN include/linux/jiffies.h~seqlock-fixes include/linux/jiffies.h
--- 25/include/linux/jiffies.h~seqlock-fixes	Thu Feb  6 16:51:05 2003
+++ 25-akpm/include/linux/jiffies.h	Thu Feb  6 16:51:05 2003
@@ -15,24 +15,14 @@
 extern u64 jiffies_64;
 extern unsigned long volatile jiffies;
 
+#if (BITS_PER_LONG < 64)
+u64 get_jiffies_64(void);
+#else
 static inline u64 get_jiffies_64(void)
 {
-#if BITS_PER_LONG < 64
-	extern seqlock_t xtime_lock;
-	unsigned long seq;
-	u64 tmp;
-
-	do {
-		seq = read_seqbegin(&xtime_lock);
-		tmp = jiffies_64;
-	} while (read_seqretry(&xtime_lock, seq));
-
-	return tmp;
-#else
 	return (u64)jiffies;
-#endif
 }
-
+#endif
 
 /*
  *	These inlines deal with timer wrapping correctly. You are 
diff -puN kernel/ksyms.c~seqlock-fixes kernel/ksyms.c
--- 25/kernel/ksyms.c~seqlock-fixes	Thu Feb  6 16:51:05 2003
+++ 25-akpm/kernel/ksyms.c	Thu Feb  6 16:51:12 2003
@@ -489,6 +489,9 @@ EXPORT_SYMBOL(xtime);
 EXPORT_SYMBOL(xtime_lock);
 EXPORT_SYMBOL(do_gettimeofday);
 EXPORT_SYMBOL(do_settimeofday);
+#if (BITS_PER_LONG < 64)
+EXPORT_SYMBOL(get_jiffies_64);
+#endif
 #ifdef CONFIG_DEBUG_SPINLOCK_SLEEP
 EXPORT_SYMBOL(__might_sleep);
 #endif
diff -puN kernel/time.c~seqlock-fixes kernel/time.c
--- 25/kernel/time.c~seqlock-fixes	Thu Feb  6 16:51:05 2003
+++ 25-akpm/kernel/time.c	Thu Feb  6 16:51:05 2003
@@ -27,7 +27,6 @@
 #include <linux/timex.h>
 #include <linux/errno.h>
 #include <linux/smp_lock.h>
-
 #include <asm/uaccess.h>
 
 /* 
@@ -416,3 +415,17 @@ struct timespec current_kernel_time(void
 
 	return now; 
 }
+
+#if (BITS_PER_LONG < 64)
+u64 get_jiffies_64(void)
+{
+	unsigned long seq;
+	u64 ret;
+
+	do {
+		seq = read_seqbegin(&xtime_lock);
+		ret = jiffies_64;
+	} while (read_seqretry(&xtime_lock, seq));
+	return ret;
+}
+#endif

_
