提交 34078a5e 编写于 作者: A Abhishek Sagar 提交者: Ingo Molnar

ftrace: prevent freeing of all failed updates

Steven Rostedt wrote:
> If we unload a module and reload it, will it ever get converted again?

The intent was always to filter core kernel functions to prevent their freeing.
Here's a fix which should allow re-recording of module call-sites.
Signed-off-by: NIngo Molnar <mingo@elte.hu>
上级 eb9a7bf0
...@@ -430,7 +430,7 @@ static void ftrace_replace_code(int enable) ...@@ -430,7 +430,7 @@ static void ftrace_replace_code(int enable)
if (failed && (rec->flags & FTRACE_FL_CONVERTED)) { if (failed && (rec->flags & FTRACE_FL_CONVERTED)) {
rec->flags |= FTRACE_FL_FAILED; rec->flags |= FTRACE_FL_FAILED;
if ((system_state == SYSTEM_BOOTING) || if ((system_state == SYSTEM_BOOTING) ||
!kernel_text_address(rec->ip)) { !core_kernel_text(rec->ip)) {
ftrace_del_hash(rec); ftrace_del_hash(rec);
ftrace_free_rec(rec); ftrace_free_rec(rec);
} }
...@@ -651,10 +651,9 @@ static int __ftrace_update_code(void *ignore) ...@@ -651,10 +651,9 @@ static int __ftrace_update_code(void *ignore)
ftrace_update_cnt++; ftrace_update_cnt++;
} else { } else {
if ((system_state == SYSTEM_BOOTING) || if ((system_state == SYSTEM_BOOTING) ||
!kernel_text_address(p->ip)) { !core_kernel_text(p->ip)) {
ftrace_del_hash(p); ftrace_del_hash(p);
ftrace_free_rec(p); ftrace_free_rec(p);
} }
} }
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册