lockdep: Add novalidate class for dev->mutex conversion
[safe/jmp/linux-2.6] / kernel / trace / trace_functions.c
index c9a0b7d..b3f3776 100644 (file)
@@ -193,9 +193,11 @@ static void tracing_start_function_trace(void)
 static void tracing_stop_function_trace(void)
 {
        ftrace_function_enabled = 0;
-       /* OK if they are not registered */
-       unregister_ftrace_function(&trace_stack_ops);
-       unregister_ftrace_function(&trace_ops);
+
+       if (func_flags.val & TRACE_FUNC_OPT_STACK)
+               unregister_ftrace_function(&trace_stack_ops);
+       else
+               unregister_ftrace_function(&trace_ops);
 }
 
 static int func_set_flag(u32 old_flags, u32 bit, int set)
@@ -286,11 +288,9 @@ static int
 ftrace_trace_onoff_print(struct seq_file *m, unsigned long ip,
                         struct ftrace_probe_ops *ops, void *data)
 {
-       char str[KSYM_SYMBOL_LEN];
        long count = (long)data;
 
-       kallsyms_lookup(ip, NULL, NULL, NULL, str);
-       seq_printf(m, "%s:", str);
+       seq_printf(m, "%ps:", (void *)ip);
 
        if (ops == &traceon_probe_ops)
                seq_printf(m, "traceon");
@@ -300,8 +300,7 @@ ftrace_trace_onoff_print(struct seq_file *m, unsigned long ip,
        if (count == -1)
                seq_printf(m, ":unlimited\n");
        else
-               seq_printf(m, ":count=%ld", count);
-       seq_putc(m, '\n');
+               seq_printf(m, ":count=%ld\n", count);
 
        return 0;
 }
@@ -362,7 +361,7 @@ ftrace_trace_onoff_callback(char *glob, char *cmd, char *param, int enable)
  out_reg:
        ret = register_ftrace_function_probe(glob, ops, count);
 
-       return ret;
+       return ret < 0 ? ret : 0;
 }
 
 static struct ftrace_func_command ftrace_traceon_cmd = {