This annotates NMI functions with notrace. Some tracers may be able
to live with this, but some cannot. So we turn off NMI tracing.

One solution might be to make a notrace_nmi which would only turn
off NMI tracing if a trace utility needed it off.

Signed-off-by: Arnaldo Carvalho de Melo <[EMAIL PROTECTED]>
Signed-off-by: Steven Rostedt <[EMAIL PROTECTED]>

---
 arch/x86/kernel/nmi_32.c   |    2 +-
 arch/x86/kernel/nmi_64.c   |    2 +-
 arch/x86/kernel/traps_32.c |    4 ++--
 3 files changed, 4 insertions(+), 4 deletions(-)

Index: linux-mcount.git/arch/x86/kernel/nmi_32.c
===================================================================
--- linux-mcount.git.orig/arch/x86/kernel/nmi_32.c      2008-01-23 
10:26:11.000000000 -0500
+++ linux-mcount.git/arch/x86/kernel/nmi_32.c   2008-01-23 10:26:53.000000000 
-0500
@@ -323,7 +323,7 @@ EXPORT_SYMBOL(touch_nmi_watchdog);
 
 extern void die_nmi(struct pt_regs *, const char *msg);
 
-__kprobes int nmi_watchdog_tick(struct pt_regs * regs, unsigned reason)
+notrace __kprobes int nmi_watchdog_tick(struct pt_regs *regs, unsigned reason)
 {
 
        /*
Index: linux-mcount.git/arch/x86/kernel/nmi_64.c
===================================================================
--- linux-mcount.git.orig/arch/x86/kernel/nmi_64.c      2008-01-23 
10:26:11.000000000 -0500
+++ linux-mcount.git/arch/x86/kernel/nmi_64.c   2008-01-23 10:26:53.000000000 
-0500
@@ -314,7 +314,7 @@ void touch_nmi_watchdog(void)
        touch_softlockup_watchdog();
 }
 
-int __kprobes nmi_watchdog_tick(struct pt_regs * regs, unsigned reason)
+notrace __kprobes int nmi_watchdog_tick(struct pt_regs *regs, unsigned reason)
 {
        int sum;
        int touched = 0;
Index: linux-mcount.git/arch/x86/kernel/traps_32.c
===================================================================
--- linux-mcount.git.orig/arch/x86/kernel/traps_32.c    2008-01-23 
10:26:11.000000000 -0500
+++ linux-mcount.git/arch/x86/kernel/traps_32.c 2008-01-23 10:26:53.000000000 
-0500
@@ -723,7 +723,7 @@ void __kprobes die_nmi(struct pt_regs *r
        do_exit(SIGSEGV);
 }
 
-static __kprobes void default_do_nmi(struct pt_regs * regs)
+static notrace __kprobes void default_do_nmi(struct pt_regs *regs)
 {
        unsigned char reason = 0;
 
@@ -763,7 +763,7 @@ static __kprobes void default_do_nmi(str
 
 static int ignore_nmis;
 
-fastcall __kprobes void do_nmi(struct pt_regs * regs, long error_code)
+notrace fastcall __kprobes void do_nmi(struct pt_regs *regs, long error_code)
 {
        int cpu;
 

-- 
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to