ftrace: do not enclose logic in WARN_ON
authorSteven Rostedt <rostedt@goodmis.org>
Tue, 14 Oct 2008 22:08:48 +0000 (18:08 -0400)
committerIngo Molnar <mingo@elte.hu>
Mon, 20 Oct 2008 16:27:00 +0000 (18:27 +0200)
In ftrace, logic is defined in the WARN_ON_ONCE, which can become a
nop with some configs. This patch fixes it.

Signed-off-by: Steven Rostedt <srostedt@redhat.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
arch/x86/kernel/ftrace.c

index d073d98..8821cea 100644 (file)
@@ -62,6 +62,7 @@ ftrace_modify_code(unsigned long ip, unsigned char *old_code,
                   unsigned char *new_code)
 {
        unsigned char replaced[MCOUNT_INSN_SIZE];
+       int ret;
 
        /*
         * Note: Due to modules and __init, code can
@@ -77,8 +78,9 @@ ftrace_modify_code(unsigned long ip, unsigned char *old_code,
        if (memcmp(replaced, old_code, MCOUNT_INSN_SIZE) != 0)
                return 2;
 
-       WARN_ON_ONCE(__copy_to_user_inatomic((char __user *)ip, new_code,
-                                   MCOUNT_INSN_SIZE));
+       ret = __copy_to_user_inatomic((char __user *)ip, new_code,
+                                       MCOUNT_INSN_SIZE);
+       WARN_ON_ONCE(ret);
 
        sync_core();