Message ID | 161495879052.346821.1701648047040447725.stgit@devnote2 (mailing list archive) |
---|---|
State | Not Applicable |
Headers | show |
Series | kprobes: Fix stacktrace in kretprobes | expand |
Context | Check | Description |
---|---|---|
netdev/tree_selection | success | Not a local patch |
On Sat, 6 Mar 2021 00:39:50 +0900 Masami Hiramatsu <mhiramat@kernel.org> wrote: > Since the stacktrace API fixup the kretprobed address correctly, > there is no need to convert the "kretprobe_trampoline" to > "[unknown/kretprobe'd]" anymore. Remove it. > > Signed-off-by: Masami Hiramatsu <mhiramat@kernel.org> > --- > kernel/trace/trace_output.c | 27 ++++----------------------- > 1 file changed, 4 insertions(+), 23 deletions(-) > Acked-by: Steven Rostedt (VMware) <rostedt@goodmis.org> -- Steve > diff --git a/kernel/trace/trace_output.c b/kernel/trace/trace_output.c > index 61255bad7e01..f5f8b081b668 100644 > --- a/kernel/trace/trace_output.c > +++ b/kernel/trace/trace_output.c > @@ -346,37 +346,18 @@ int trace_output_call(struct trace_iterator *iter, char *name, char *fmt, ...) > } > EXPORT_SYMBOL_GPL(trace_output_call); > > -#ifdef CONFIG_KRETPROBES > -static inline const char *kretprobed(const char *name) > -{ > - static const char tramp_name[] = "kretprobe_trampoline"; > - int size = sizeof(tramp_name); > - > - if (strncmp(tramp_name, name, size) == 0) > - return "[unknown/kretprobe'd]"; > - return name; > -} > -#else > -static inline const char *kretprobed(const char *name) > -{ > - return name; > -} > -#endif /* CONFIG_KRETPROBES */ > - > void > trace_seq_print_sym(struct trace_seq *s, unsigned long address, bool offset) > { > #ifdef CONFIG_KALLSYMS > - char str[KSYM_SYMBOL_LEN]; > - const char *name; > + char name[KSYM_SYMBOL_LEN]; > > if (offset) > - sprint_symbol(str, address); > + sprint_symbol(name, address); > else > - kallsyms_lookup(address, NULL, NULL, NULL, str); > - name = kretprobed(str); > + kallsyms_lookup(address, NULL, NULL, NULL, name); > > - if (name && strlen(name)) { > + if (strlen(name)) { > trace_seq_puts(s, name); > return; > }
diff --git a/kernel/trace/trace_output.c b/kernel/trace/trace_output.c index 61255bad7e01..f5f8b081b668 100644 --- a/kernel/trace/trace_output.c +++ b/kernel/trace/trace_output.c @@ -346,37 +346,18 @@ int trace_output_call(struct trace_iterator *iter, char *name, char *fmt, ...) } EXPORT_SYMBOL_GPL(trace_output_call); -#ifdef CONFIG_KRETPROBES -static inline const char *kretprobed(const char *name) -{ - static const char tramp_name[] = "kretprobe_trampoline"; - int size = sizeof(tramp_name); - - if (strncmp(tramp_name, name, size) == 0) - return "[unknown/kretprobe'd]"; - return name; -} -#else -static inline const char *kretprobed(const char *name) -{ - return name; -} -#endif /* CONFIG_KRETPROBES */ - void trace_seq_print_sym(struct trace_seq *s, unsigned long address, bool offset) { #ifdef CONFIG_KALLSYMS - char str[KSYM_SYMBOL_LEN]; - const char *name; + char name[KSYM_SYMBOL_LEN]; if (offset) - sprint_symbol(str, address); + sprint_symbol(name, address); else - kallsyms_lookup(address, NULL, NULL, NULL, str); - name = kretprobed(str); + kallsyms_lookup(address, NULL, NULL, NULL, name); - if (name && strlen(name)) { + if (strlen(name)) { trace_seq_puts(s, name); return; }
Since the stacktrace API fixup the kretprobed address correctly, there is no need to convert the "kretprobe_trampoline" to "[unknown/kretprobe'd]" anymore. Remove it. Signed-off-by: Masami Hiramatsu <mhiramat@kernel.org> --- kernel/trace/trace_output.c | 27 ++++----------------------- 1 file changed, 4 insertions(+), 23 deletions(-)