diff options
author | Andi Kleen <ak@suse.de> | 2006-02-03 15:50:41 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-02-04 19:43:12 -0500 |
commit | eddb6fb9a54cdc8c7c37e056a2b4bbbc8a128a36 (patch) | |
tree | c8b9a0773518f45aa86d861fce959c3c4f946b06 /arch/x86_64/kernel/entry.S | |
parent | 2f01942536d8c686a3f6b3b38f1257caa2fb763e (diff) |
[PATCH] x86_64: Disallow kprobes on NMI handlers
A kprobe executes IRET early and that could cause NMI recursion
and stack corruption.
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'arch/x86_64/kernel/entry.S')
-rw-r--r-- | arch/x86_64/kernel/entry.S | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/arch/x86_64/kernel/entry.S b/arch/x86_64/kernel/entry.S index dbdba56e8faa..cdf9cb1288c1 100644 --- a/arch/x86_64/kernel/entry.S +++ b/arch/x86_64/kernel/entry.S | |||
@@ -922,7 +922,7 @@ KPROBE_ENTRY(debug) | |||
922 | .previous .text | 922 | .previous .text |
923 | 923 | ||
924 | /* runs on exception stack */ | 924 | /* runs on exception stack */ |
925 | ENTRY(nmi) | 925 | KPROBE_ENTRY(nmi) |
926 | INTR_FRAME | 926 | INTR_FRAME |
927 | pushq $-1 | 927 | pushq $-1 |
928 | CFI_ADJUST_CFA_OFFSET 8 | 928 | CFI_ADJUST_CFA_OFFSET 8 |
@@ -969,6 +969,7 @@ paranoid_schedule: | |||
969 | cli | 969 | cli |
970 | jmp paranoid_userspace | 970 | jmp paranoid_userspace |
971 | CFI_ENDPROC | 971 | CFI_ENDPROC |
972 | .previous .text | ||
972 | 973 | ||
973 | KPROBE_ENTRY(int3) | 974 | KPROBE_ENTRY(int3) |
974 | INTR_FRAME | 975 | INTR_FRAME |