Messages in this thread | | | Date | Thu, 24 Jul 2008 16:38:22 -0400 | From | "H. Peter Anvin" <> | Subject | Re: [git pull] x86 fixes |
| |
Linus Torvalds wrote: > > 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.
You're obviously right here; thanks for taking care of it.
-hpa
| |