This patch is supposed to be applied on top of George Anzinger's patch.
It just introduces a get_jiffies64() function that exports 64 bit jiffies
with correct locking, which is needed on 32 bit platforms but superfluous
on 64 bit. Patches 2/6 - 5/6 use this interface only.
--- linux-2.5.15-j64/include/linux/sched.h Sat May 11 14:27:12 2002
+++ linux-2.5.15-j66/include/linux/sched.h Sat May 11 16:07:59 2002
@@ -461,10 +461,22 @@
/*
* The 64-bit value is not volatile - you MUST NOT read it
- * without holding read_lock_irq(&xtime_lock)
+ * without holding read_lock_irq(&xtime_lock).
+ * get_jiffies64() will do this for you as appropriate.
*/
extern u64 jiffies_64;
extern unsigned long volatile jiffies;
+#if BITS_PER_LONG < 48
+#define NEEDS_JIFFIES64
+ extern u64 get_jiffies64(void);
+#else
+ /* jiffies is wide enough to not wrap for 8716 years at HZ==1024 */
+ static inline u64 get_jiffies64(void)
+ {
+ return (u64)jiffies;
+ }
+#endif
+
extern unsigned long itimer_ticks;
extern unsigned long itimer_next;
extern void do_timer(struct pt_regs *);
--- linux-2.5.15-j64/kernel/timer.c Sat May 11 14:27:12 2002
+++ linux-2.5.15-j66/kernel/timer.c Sat May 11 16:03:56 2002
@@ -680,6 +680,19 @@
mark_bh(TQUEUE_BH);
}
+#ifdef NEEDS_JIFFIES64
+u64 get_jiffies64(void)
+{
+ u64 j64;
+ unsigned long flags;
+
+ read_lock_irqsave(&xtime_lock, flags);
+ j64 = jiffies_64;
+ read_unlock_irqrestore(&xtime_lock, flags);
+ return j64;
+}
+#endif
+
#if !defined(__alpha__) && !defined(__ia64__)
/*
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/