Messages in this thread | | | Date | Thu, 24 Jul 2008 12:36:38 -0700 (PDT) | From | Linus Torvalds <> | Subject | Re: [git pull] x86 fixes |
| |
On Thu, 24 Jul 2008, Ingo Molnar wrote: > > Hugh Dickins (1): > x86: BUILD_IRQ say .text to avoid .data.percpu > > diff --git a/arch/x86/kernel/irqinit_64.c b/arch/x86/kernel/irqinit_64.c > index 0373e88..9414125 100644 > --- a/arch/x86/kernel/irqinit_64.c > +++ b/arch/x86/kernel/irqinit_64.c > @@ -43,7 +43,7 @@ > > #define BUILD_IRQ(nr) \ > asmlinkage void IRQ_NAME(nr); \ > - asm("\n.p2align\n" \ > + asm("\n.text\n.p2align\n" \ > "IRQ" #nr "_interrupt:\n\t" \ > "push $~(" #nr ") ; " \ > "jmp common_interrupt");
I do not think this is a good idea AT ALL.
You need a ".previous" there too, otherwise any random C code that doesn't _happen_ to change segments will now possibly put some random variable in the .text segment.
And yes, dependign on just where the BUILD_IRQ() is, and what is around it, and what compiler version we have, this bug may or may not show. But it's still _wrong_.
I pulled it, will fix up by hand.
Linus
| |