summaryrefslogtreecommitdiff
path: root/arch/x86
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2008-07-24 23:49:26 +0400
committerLinus Torvalds <torvalds@linux-foundation.org>2008-07-24 23:49:26 +0400
commit6209ed9d8443b63c36d340908530fa470c4d4fff (patch)
treecb969e1a366fac6572c5a560e9f4345c120f318b /arch/x86
parent6044110742bc2ae0577b962985e7c63e0634b2e9 (diff)
downloadlinux-6209ed9d8443b63c36d340908530fa470c4d4fff.tar.xz
x86-64: make BUILD_IRQ() also reset section back
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>
Diffstat (limited to 'arch/x86')
-rw-r--r--arch/x86/kernel/irqinit_64.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/arch/x86/kernel/irqinit_64.c b/arch/x86/kernel/irqinit_64.c
index 9414125f19ce..1f26fd9ec4f4 100644
--- a/arch/x86/kernel/irqinit_64.c
+++ b/arch/x86/kernel/irqinit_64.c
@@ -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)