aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86/kernel/entry_64.S
diff options
context:
space:
mode:
authorAlexander van Heukelum <heukelum@fastmail.fm>2008-09-26 14:03:03 +0200
committerIngo Molnar <mingo@elte.hu>2008-10-13 10:21:55 +0200
commit7e61a7932495e37685e95ec9a59ad08810dec959 (patch)
tree302cb73a88bd903aceffe473a34c8a66965d91ca /arch/x86/kernel/entry_64.S
parenttraps: x86_64: add TRACE_IRQS_OFF in error_entry (diff)
downloadlinux-dev-7e61a7932495e37685e95ec9a59ad08810dec959.tar.xz
linux-dev-7e61a7932495e37685e95ec9a59ad08810dec959.zip
traps: x86_64: add TRACE_IRQS_OFF in paranoidentry macro
Add TRACE_IRQS_OFF just before entering the C code. All exceptions are taken via interrupt gates. If irq tracing is enabled, it should be notified as soon as possible. Interrupts are only (conditionally) re-enabled in C code. Signed-off-by: Alexander van Heukelum <heukelum@fastmail.fm> Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'arch/x86/kernel/entry_64.S')
-rw-r--r--arch/x86/kernel/entry_64.S3
1 files changed, 3 insertions, 0 deletions
diff --git a/arch/x86/kernel/entry_64.S b/arch/x86/kernel/entry_64.S
index 963b35b81bcc..977c8ea66028 100644
--- a/arch/x86/kernel/entry_64.S
+++ b/arch/x86/kernel/entry_64.S
@@ -939,6 +939,9 @@ END(spurious_interrupt)
.if \ist
movq %gs:pda_data_offset, %rbp
.endif
+ .if \irqtrace
+ TRACE_IRQS_OFF
+ .endif
movq %rsp,%rdi
movq ORIG_RAX(%rsp),%rsi
movq $-1,ORIG_RAX(%rsp)