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