diff options
| author | Steven Rostedt <srostedt@redhat.com> | 2011-05-23 15:24:25 -0400 |
|---|---|---|
| committer | Steven Rostedt <rostedt@goodmis.org> | 2011-05-25 22:13:37 -0400 |
| commit | a1cd6173596c6f7d1f0b41ac7d33ecf03c581edc (patch) | |
| tree | 413ed775a2c48d8ad003740fa6ef0d912f784842 /kernel/trace | |
| parent | 7cbc5b8d4a775a43875a09e29c49a2a8195b5b2d (diff) | |
ftrace: Have ftrace_startup() return failure code
The register_ftrace_function() returns an error code on failure
except if the call to ftrace_startup() fails. Add a error return to
ftrace_startup() if it fails to start, allowing register_ftrace_funtion()
to return a proper error value.
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
Diffstat (limited to 'kernel/trace')
| -rw-r--r-- | kernel/trace/ftrace.c | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/kernel/trace/ftrace.c b/kernel/trace/ftrace.c index d017c2c82c44..bebbc959ee8c 100644 --- a/kernel/trace/ftrace.c +++ b/kernel/trace/ftrace.c | |||
| @@ -1638,12 +1638,12 @@ static void ftrace_startup_enable(int command) | |||
| 1638 | ftrace_run_update_code(command); | 1638 | ftrace_run_update_code(command); |
| 1639 | } | 1639 | } |
| 1640 | 1640 | ||
| 1641 | static void ftrace_startup(struct ftrace_ops *ops, int command) | 1641 | static int ftrace_startup(struct ftrace_ops *ops, int command) |
| 1642 | { | 1642 | { |
| 1643 | bool hash_enable = true; | 1643 | bool hash_enable = true; |
| 1644 | 1644 | ||
| 1645 | if (unlikely(ftrace_disabled)) | 1645 | if (unlikely(ftrace_disabled)) |
| 1646 | return; | 1646 | return -ENODEV; |
| 1647 | 1647 | ||
| 1648 | ftrace_start_up++; | 1648 | ftrace_start_up++; |
| 1649 | command |= FTRACE_ENABLE_CALLS; | 1649 | command |= FTRACE_ENABLE_CALLS; |
| @@ -1662,6 +1662,8 @@ static void ftrace_startup(struct ftrace_ops *ops, int command) | |||
| 1662 | ftrace_hash_rec_enable(ops, 1); | 1662 | ftrace_hash_rec_enable(ops, 1); |
| 1663 | 1663 | ||
| 1664 | ftrace_startup_enable(command); | 1664 | ftrace_startup_enable(command); |
| 1665 | |||
| 1666 | return 0; | ||
| 1665 | } | 1667 | } |
| 1666 | 1668 | ||
| 1667 | static void ftrace_shutdown(struct ftrace_ops *ops, int command) | 1669 | static void ftrace_shutdown(struct ftrace_ops *ops, int command) |
| @@ -2501,7 +2503,7 @@ static void __enable_ftrace_function_probe(void) | |||
| 2501 | 2503 | ||
| 2502 | ret = __register_ftrace_function(&trace_probe_ops); | 2504 | ret = __register_ftrace_function(&trace_probe_ops); |
| 2503 | if (!ret) | 2505 | if (!ret) |
| 2504 | ftrace_startup(&trace_probe_ops, 0); | 2506 | ret = ftrace_startup(&trace_probe_ops, 0); |
| 2505 | 2507 | ||
| 2506 | ftrace_probe_registered = 1; | 2508 | ftrace_probe_registered = 1; |
| 2507 | } | 2509 | } |
| @@ -3466,7 +3468,7 @@ device_initcall(ftrace_nodyn_init); | |||
| 3466 | static inline int ftrace_init_dyn_debugfs(struct dentry *d_tracer) { return 0; } | 3468 | static inline int ftrace_init_dyn_debugfs(struct dentry *d_tracer) { return 0; } |
| 3467 | static inline void ftrace_startup_enable(int command) { } | 3469 | static inline void ftrace_startup_enable(int command) { } |
| 3468 | /* Keep as macros so we do not need to define the commands */ | 3470 | /* Keep as macros so we do not need to define the commands */ |
| 3469 | # define ftrace_startup(ops, command) do { } while (0) | 3471 | # define ftrace_startup(ops, command) ({0;}) |
| 3470 | # define ftrace_shutdown(ops, command) do { } while (0) | 3472 | # define ftrace_shutdown(ops, command) do { } while (0) |
| 3471 | # define ftrace_startup_sysctl() do { } while (0) | 3473 | # define ftrace_startup_sysctl() do { } while (0) |
| 3472 | # define ftrace_shutdown_sysctl() do { } while (0) | 3474 | # define ftrace_shutdown_sysctl() do { } while (0) |
| @@ -3799,7 +3801,7 @@ int register_ftrace_function(struct ftrace_ops *ops) | |||
| 3799 | 3801 | ||
| 3800 | ret = __register_ftrace_function(ops); | 3802 | ret = __register_ftrace_function(ops); |
| 3801 | if (!ret) | 3803 | if (!ret) |
| 3802 | ftrace_startup(ops, 0); | 3804 | ret = ftrace_startup(ops, 0); |
| 3803 | 3805 | ||
| 3804 | 3806 | ||
| 3805 | out_unlock: | 3807 | out_unlock: |
| @@ -4045,7 +4047,7 @@ int register_ftrace_graph(trace_func_graph_ret_t retfunc, | |||
| 4045 | ftrace_graph_return = retfunc; | 4047 | ftrace_graph_return = retfunc; |
| 4046 | ftrace_graph_entry = entryfunc; | 4048 | ftrace_graph_entry = entryfunc; |
| 4047 | 4049 | ||
| 4048 | ftrace_startup(&global_ops, FTRACE_START_FUNC_RET); | 4050 | ret = ftrace_startup(&global_ops, FTRACE_START_FUNC_RET); |
| 4049 | 4051 | ||
| 4050 | out: | 4052 | out: |
| 4051 | mutex_unlock(&ftrace_lock); | 4053 | mutex_unlock(&ftrace_lock); |
