Skip to contentSkip to conversation

2.4.20-aa1 questions.

PATCH New Austin Gonyou 3 participants 4 messages Dec 3, 2002 Scheduler

lore
Share & tools
lore
#0 lore raw

what do the following patches actually *fix*?

00_backout-gcc-3_0-patch-1
00_gcc-30-volatile-xtime-1

I'm trying to get 2.4.20 patched up by using the -aa split patches for 2.4.20 and I'm incorporating only the things I want, but I use gcc 3.2 for compiling, and these confused me a bit.

Signature · 2 lines
Austin Gonyou <[email protected]>
Coremetrics, Inc.
#1 lore raw
Quoted 8 lines · Austin Gonyou

what do the following patches actually *fix*?

00_backout-gcc-3_0-patch-1
00_gcc-30-volatile-xtime-1

I'm trying to get 2.4.20 patched up by using the -aa split patches for 2.4.20 and I'm incorporating only the things I want, but I use gcc 3.2 for compiling, and these confused me a bit.

Oooh, I had lengthy discussion with andrea on those two. These patches are a) grossly misnamed and b) should be one. They change xtime to a volatile because andrea thinks that's safer.

The background on the silly naming is that earlier 2.4 kernels had xtime not volatile but the prototype (or vice versa) and gcc3 didn't like that.

So the best idea would be to merge them into 00_xtime_volatile-1 if you want to keep them.

#2 lore raw
Quoted 10 lines · Christoph Hellwig
Quoted 8 lines · Austin Gonyou

what do the following patches actually *fix*?

00_backout-gcc-3_0-patch-1
00_gcc-30-volatile-xtime-1

I'm trying to get 2.4.20 patched up by using the -aa split patches for 2.4.20 and I'm incorporating only the things I want, but I use gcc 3.2 for compiling, and these confused me a bit.

Quoted 6 lines

Oooh, I had lengthy discussion with andrea on those two. These patches are a) grossly misnamed and b) should be one. They change xtime to a volatile because andrea thinks that's safer.

The background on the silly naming is that earlier 2.4 kernels had xtime not volatile but the prototype (or vice versa) and gcc3 didn't like that.

Ahh...kewl. thanks much. I was thinking that, but I was very confused by the naming versus the code. (not that I was *that* sure of the code anyway, but you know.) :)

Quoted 2 lines

So the best idea would be to merge them into 00_xtime_volatile-1 if you want to keep them.

Ok...that sounds like a plan. Thanks so much.

Signature · 1 line
GrandMasterLee <[email protected]>
#3 lore raw

PATCH 1/1 00_xtime_volatile-1

On Tue, 2002-12-03 at 15:01, GrandMasterLee wrote:
[...]

Quoted 9 lines
Quoted 2 lines

The background on the silly naming is that earlier 2.4 kernels had xtime not volatile but the prototype (or vice versa) and gcc3 didn't like that.

Ahh...kewl. thanks much. I was thinking that, but I was very confused by the naming versus the code. (not that I was *that* sure of the code anyway, but you know.) :)

Quoted 4 lines
Quoted 2 lines

So the best idea would be to merge them into if
you want to keep them.

Ok...that sounds like a plan. Thanks so much.

Here is the patch. I think it should be OK. I just took the two questioned patches and applied them to 2.4.20, then diffed against a pristine 2.4.20.

--The GrandMaster
<[email protected]>

include/linux/sched.h +1 -1
diff -Nuar linux-2.4.20/include/linux/sched.h linux-2.4.20.working/include/linux/sched.h
@@ -582,7 +582,7 @@
 extern unsigned long volatile jiffies;
 extern unsigned long itimer_ticks;
 extern unsigned long itimer_next;
-extern struct timeval xtime;
+extern volatile struct timeval xtime;
 extern void do_timer(struct pt_regs *);
 
 extern unsigned int * prof_buffer;
include/linux/sched.h.orig +959 -0

959 lines not on this page · raw message

kernel/timer.c +1 -1
diff -Nuar linux-2.4.20/kernel/timer.c linux-2.4.20.working/kernel/timer.c
@@ -32,7 +32,7 @@
 long tick = (1000000 + HZ/2) / HZ;	/* timer interrupt period */
 
 /* The current time */
-struct timeval xtime __attribute__ ((aligned (16)));
+volatile struct timeval xtime __attribute__ ((aligned (16)));
 
 /* Don't completely fail for HZ > 500.  */
 int tickadj = 500/HZ ? : 1;		/* microsecs */