If we reenable ftrace via syctl, we currently set ftrace_trace_function
based on the previous simplistic algorithm. This is inconsistent with
what update_ftrace_function does. So better call that helper instead.
Signed-off-by: Jan Kiszka <[email protected]>
---
kernel/trace/ftrace.c | 8 ++------
1 files changed, 2 insertions(+), 6 deletions(-)
diff --git a/kernel/trace/ftrace.c b/kernel/trace/ftrace.c
index 62b71f6..b9b90f0 100644
--- a/kernel/trace/ftrace.c
+++ b/kernel/trace/ftrace.c
@@ -4538,12 +4538,8 @@ ftrace_enable_sysctl(struct ctl_table *table, int write,
ftrace_startup_sysctl();
/* we are starting ftrace again */
- if (ftrace_ops_list != &ftrace_list_end) {
- if (ftrace_ops_list->next == &ftrace_list_end)
- ftrace_trace_function = ftrace_ops_list->func;
- else
- ftrace_trace_function = ftrace_ops_list_func;
- }
+ if (ftrace_ops_list != &ftrace_list_end)
+ update_ftrace_function();
} else {
/* stopping ftrace calls (just send to ftrace_stub) */
--
1.7.3.4
On Tue, 2013-03-26 at 17:53 +0100, Jan Kiszka wrote:
> If we reenable ftrace via syctl, we currently set ftrace_trace_function
> based on the previous simplistic algorithm. This is inconsistent with
> what update_ftrace_function does. So better call that helper instead.
>
> Signed-off-by: Jan Kiszka <[email protected]>
> ---
> kernel/trace/ftrace.c | 8 ++------
> 1 files changed, 2 insertions(+), 6 deletions(-)
>
> diff --git a/kernel/trace/ftrace.c b/kernel/trace/ftrace.c
> index 62b71f6..b9b90f0 100644
> --- a/kernel/trace/ftrace.c
> +++ b/kernel/trace/ftrace.c
> @@ -4538,12 +4538,8 @@ ftrace_enable_sysctl(struct ctl_table *table, int write,
> ftrace_startup_sysctl();
>
> /* we are starting ftrace again */
> - if (ftrace_ops_list != &ftrace_list_end) {
> - if (ftrace_ops_list->next == &ftrace_list_end)
> - ftrace_trace_function = ftrace_ops_list->func;
> - else
> - ftrace_trace_function = ftrace_ops_list_func;
> - }
I remember there was a reason why I didn't update this, but I can't
remember why. Looking at it now, it doesn't look like there is a reason.
I'll have to think about this one more. Another score for not
commenting :-p
Thanks,
-- Steve
> + if (ftrace_ops_list != &ftrace_list_end)
> + update_ftrace_function();
>
> } else {
> /* stopping ftrace calls (just send to ftrace_stub) */
On Tue, 2013-03-26 at 15:10 -0400, Steven Rostedt wrote:
> I remember there was a reason why I didn't update this, but I can't
> remember why. Looking at it now, it doesn't look like there is a reason.
I remember now. I didn't add it because the update_ftrace_function was
too much at the time. It was still doing the basic updates, but it was
also doing a bit more too. But this was before I added the extra checks.
I didn't call it because it seemed to be an overkill. But that doesn't
apply today.
>
> I'll have to think about this one more. Another score for not
> commenting :-p
OK, I'll add it and it looks like it needs to go immediately, as well as
way back to 3.0 stable.
Thanks!
-- Steve