Skip to contentSkip to conversation

2.5.43-tick

PATCH In review Russell King 2 participants 2 messages Oct 17, 2002

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 2.5.43-tick

This patch appears not to be in 2.5.43, but applies cleanly.

On some ARM platforms, CLOCK_TICK_RATE is not a constant (it is specified at boot time), which means that TICK_USEC/TICK_NSEC is not constant. We therefore can not initialise static variables with these definitions; they must be done at run time.

 kernel/timer.c |    7 +++++--
 1 files changed, 5 insertions, 2 deletions
kernel/timer.c +5 -2
diff -ur orig/kernel/timer.c linux/kernel/timer.c
@@ -376,8 +376,8 @@
 /*
  * Timekeeping variables
  */
-unsigned long tick_usec = TICK_USEC; 		/* ACTHZ   period (usec) */
-unsigned long tick_nsec = TICK_NSEC(TICK_USEC);	/* USER_HZ period (nsec) */
+unsigned long tick_usec;	/* ACTHZ   period (usec) */
+unsigned long tick_nsec;	/* USER_HZ period (nsec) */
 
 /* The current time */
 struct timespec xtime __attribute__ ((aligned (16)));
@@ -1069,6 +1069,9 @@
 void __init init_timers(void)
 {
 	int i, j;
+
+	tick_usec = TICK_USEC;
+	tick_nsec = TICK_NSEC(TICK_USEC);
 
 	for (i = 0; i < NR_CPUS; i++) {
 		tvec_base_t *base;
#1 lore raw
Quoted 7 lines · Russell King

This patch appears not to be in 2.5.43, but applies cleanly.

On some ARM platforms, CLOCK_TICK_RATE is not a constant (it is specified at boot time), which means that TICK_USEC/TICK_NSEC is not constant. We therefore can not initialise static variables with these definitions; they must be done at run time.

I must be missing something here. Why can't both be done? That is, leave timer.c alone and add code to the arch time init to correct the values?

-g

Quoted 34 lines
 kernel/timer.c |    7 +++++--
 1 files changed, 5 insertions, 2 deletions

diff -ur orig/kernel/timer.c linux/kernel/timer.c

kernel/timer.c Wed Oct 16 09:15:00 2002 renamed from kernel/timer.c Wed Oct 16 09:17:13 2002 +5 -3
@@ -376,8 +376,8 @@
 /*
  * Timekeeping variables
  */
-unsigned long tick_usec = TICK_USEC;           /* ACTHZ   period (usec) */
-unsigned long tick_nsec = TICK_NSEC(TICK_USEC);        /* USER_HZ period (nsec) */
+unsigned long tick_usec;       /* ACTHZ   period (usec) */
+unsigned long tick_nsec;       /* USER_HZ period (nsec) */
 
 /* The current time */
 struct timespec xtime __attribute__ ((aligned (16)));
@@ -1069,6 +1069,9 @@
 void __init init_timers(void)
 {
        int i, j;
+
+       tick_usec = TICK_USEC;
+       tick_nsec = TICK_NSEC(TICK_USEC);
 
        for (i = 0; i < NR_CPUS; i++) {
                tvec_base_t *base;
 
-

To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/

Signature · 5 lines
George Anzinger   [email protected]
High-res-timers: 
http://sourceforge.net/projects/high-res-timers/
Preemption patch:
http://www.kernel.org/pub/linux/kernel/people/rml