diff options
author | Steven Rostedt <srostedt@redhat.com> | 2008-04-19 13:19:55 -0400 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2008-04-19 13:19:55 -0400 |
commit | 5deb45e39b946901ae028ccd3a1d0b35fa387475 (patch) | |
tree | a29b8d4cffbd1183158d8d77b869181eaa934ff8 /arch/x86/kernel/traps_64.c | |
parent | 4bd01600b214275a80a69b44393d7e81d43c2faa (diff) |
ftrace: add notrace annotations for NMI routines
This annotates NMI functions with notrace. Some tracers may be able
to live with this, but some cannot. The safest is to turn it off,
it's not particularly interesting anyway.
Signed-off-by: Steven Rostedt <srostedt@redhat.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Diffstat (limited to 'arch/x86/kernel/traps_64.c')
-rw-r--r-- | arch/x86/kernel/traps_64.c | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/arch/x86/kernel/traps_64.c b/arch/x86/kernel/traps_64.c index 79aa6fc0815c..6d883b13ef4f 100644 --- a/arch/x86/kernel/traps_64.c +++ b/arch/x86/kernel/traps_64.c | |||
@@ -600,7 +600,8 @@ void die(const char * str, struct pt_regs * regs, long err) | |||
600 | oops_end(flags, regs, SIGSEGV); | 600 | oops_end(flags, regs, SIGSEGV); |
601 | } | 601 | } |
602 | 602 | ||
603 | void __kprobes die_nmi(char *str, struct pt_regs *regs, int do_panic) | 603 | notrace __kprobes void |
604 | die_nmi(char *str, struct pt_regs *regs, int do_panic) | ||
604 | { | 605 | { |
605 | unsigned long flags; | 606 | unsigned long flags; |
606 | 607 | ||
@@ -772,7 +773,7 @@ asmlinkage void __kprobes do_general_protection(struct pt_regs * regs, | |||
772 | die("general protection fault", regs, error_code); | 773 | die("general protection fault", regs, error_code); |
773 | } | 774 | } |
774 | 775 | ||
775 | static __kprobes void | 776 | static notrace __kprobes void |
776 | mem_parity_error(unsigned char reason, struct pt_regs * regs) | 777 | mem_parity_error(unsigned char reason, struct pt_regs * regs) |
777 | { | 778 | { |
778 | printk(KERN_EMERG "Uhhuh. NMI received for unknown reason %02x.\n", | 779 | printk(KERN_EMERG "Uhhuh. NMI received for unknown reason %02x.\n", |
@@ -796,7 +797,7 @@ mem_parity_error(unsigned char reason, struct pt_regs * regs) | |||
796 | outb(reason, 0x61); | 797 | outb(reason, 0x61); |
797 | } | 798 | } |
798 | 799 | ||
799 | static __kprobes void | 800 | static notrace __kprobes void |
800 | io_check_error(unsigned char reason, struct pt_regs * regs) | 801 | io_check_error(unsigned char reason, struct pt_regs * regs) |
801 | { | 802 | { |
802 | printk("NMI: IOCK error (debug interrupt?)\n"); | 803 | printk("NMI: IOCK error (debug interrupt?)\n"); |
@@ -810,7 +811,7 @@ io_check_error(unsigned char reason, struct pt_regs * regs) | |||
810 | outb(reason, 0x61); | 811 | outb(reason, 0x61); |
811 | } | 812 | } |
812 | 813 | ||
813 | static __kprobes void | 814 | static notrace __kprobes void |
814 | unknown_nmi_error(unsigned char reason, struct pt_regs * regs) | 815 | unknown_nmi_error(unsigned char reason, struct pt_regs * regs) |
815 | { | 816 | { |
816 | if (notify_die(DIE_NMIUNKNOWN, "nmi", regs, reason, 2, SIGINT) == NOTIFY_STOP) | 817 | if (notify_die(DIE_NMIUNKNOWN, "nmi", regs, reason, 2, SIGINT) == NOTIFY_STOP) |
@@ -827,7 +828,7 @@ unknown_nmi_error(unsigned char reason, struct pt_regs * regs) | |||
827 | 828 | ||
828 | /* Runs on IST stack. This code must keep interrupts off all the time. | 829 | /* Runs on IST stack. This code must keep interrupts off all the time. |
829 | Nested NMIs are prevented by the CPU. */ | 830 | Nested NMIs are prevented by the CPU. */ |
830 | asmlinkage __kprobes void default_do_nmi(struct pt_regs *regs) | 831 | asmlinkage notrace __kprobes void default_do_nmi(struct pt_regs *regs) |
831 | { | 832 | { |
832 | unsigned char reason = 0; | 833 | unsigned char reason = 0; |
833 | int cpu; | 834 | int cpu; |