x86-64: make BUILD_IRQ() also reset section back
authorLinus Torvalds <torvalds@linux-foundation.org>
Thu, 24 Jul 2008 19:49:26 +0000 (12:49 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Thu, 24 Jul 2008 19:49:26 +0000 (12:49 -0700)
Commit 9d25d4db81833029d30b7b03cc1000cbbe09e192 ("x86: BUILD_IRQ say
.text to avoid .data.percpu") added a ".text" specifier to make sure
that BUILD_IRQ() builds the irq trampoline in the text segment rather
than in some random left-over segment that the compiler happened to
leave the asm in.

However, we should also make sure that we switch back by adding a
".previous" at the end, so that there are no subtle issues with
subsequent compiler-generated code.

Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
arch/x86/kernel/irqinit_64.c

index 9414125..1f26fd9 100644 (file)
@@ -46,7 +46,8 @@
        asm("\n.text\n.p2align\n"               \
            "IRQ" #nr "_interrupt:\n\t"         \
            "push $~(" #nr ") ; "               \
-           "jmp common_interrupt");
+           "jmp common_interrupt\n"            \
+           ".previous");
 
 #define BI(x,y) \
        BUILD_IRQ(x##y)