Index: linux-2.6.10-Omap1710/include/linux/time.h
===================================================================
--- linux-2.6.10-Omap1710.orig/include/linux/time.h	2005-02-03 09:06:40.378530238 +0000
+++ linux-2.6.10-Omap1710/include/linux/time.h	2005-02-03 09:20:37.703894461 +0000
@@ -80,7 +80,20 @@
 
 extern struct timespec xtime;
 extern struct timespec wall_to_monotonic;
-extern raw_seqlock_t xtime_lock;
+
+#ifndef ARCH_HAVE_XTIME_LOCK
+
+ #ifdef PREEMPT_TIMER_IRQ
+  #define XTIME_LOCK_T seqlock_t
+  #define DECLARE_XTIME_LOCK DECLARE_SEQLOCK(xtime_lock)
+ #else
+  #define XTIME_LOCK_T raw_seqlock_t
+  #define DECLARE_XTIME_LOCK DECLARE_RAW_SEQLOCK(xtime_lock)
+ #endif 
+
+extern XTIME_LOCK_T xtime_lock;
+
+#endif
 
 static inline unsigned long get_seconds(void)
 { 
Index: linux-2.6.10-Omap1710/kernel/timer.c
===================================================================
--- linux-2.6.10-Omap1710.orig/kernel/timer.c	2005-02-03 09:06:40.379529900 +0000
+++ linux-2.6.10-Omap1710/kernel/timer.c	2005-02-03 09:52:42.418866172 +0000
@@ -943,7 +943,7 @@
  * playing with xtime and avenrun.
  */
 #ifndef ARCH_HAVE_XTIME_LOCK
-DECLARE_RAW_SEQLOCK(xtime_lock);
+DECLARE_XTIME_LOCK;
 
 EXPORT_SYMBOL(xtime_lock);
 #endif
Index: linux-2.6.10-Omap1710/lib/Kconfig.RT
===================================================================
--- linux-2.6.10-Omap1710.orig/lib/Kconfig.RT	2005-02-03 09:06:40.379529900 +0000
+++ linux-2.6.10-Omap1710/lib/Kconfig.RT	2005-02-03 09:06:49.185545306 +0000
@@ -119,6 +119,14 @@
 
 	  Say N if you are unsure.
 
+config PREEMPT_TIMER_IRQ
+	bool "Run timer IRQ in a thread"
+       	default y
+	depends on PREEMPT_HARDIRQS && ARM
+	help
+	This declares the xtime_lock as a mutex and allows 
+        running the timer interrupt in a thread.
+
 config SPINLOCK_BKL
 	bool "Old-Style Big Kernel Lock"
 	depends on (PREEMPT || SMP) && !PREEMPT_RT
