diff options
Diffstat (limited to 'kernel/trace/trace_output.c')
| -rw-r--r-- | kernel/trace/trace_output.c | 17 | 
1 files changed, 4 insertions, 13 deletions
| diff --git a/kernel/trace/trace_output.c b/kernel/trace/trace_output.c index c2ca40e8595b..3547e7176ff7 100644 --- a/kernel/trace/trace_output.c +++ b/kernel/trace/trace_output.c @@ -8,6 +8,7 @@  #include <linux/module.h>  #include <linux/mutex.h>  #include <linux/ftrace.h> +#include <linux/kprobes.h>  #include <linux/sched/clock.h>  #include <linux/sched/mm.h> @@ -346,22 +347,12 @@ 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 inline const char *kretprobed(const char *name, unsigned long addr)  { -	static const char tramp_name[] = "kretprobe_trampoline"; -	int size = sizeof(tramp_name); - -	if (strncmp(tramp_name, name, size) == 0) +	if (is_kretprobe_trampoline(addr))  		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) @@ -374,7 +365,7 @@ trace_seq_print_sym(struct trace_seq *s, unsigned long address, bool offset)  		sprint_symbol(str, address);  	else  		kallsyms_lookup(address, NULL, NULL, NULL, str); -	name = kretprobed(str); +	name = kretprobed(str, address);  	if (name && strlen(name)) {  		trace_seq_puts(s, name); | 
