diff options
author | Rasmus Villemoes <linux@rasmusvillemoes.dk> | 2018-10-29 18:35:40 -0400 |
---|---|---|
committer | Steven Rostedt (VMware) <rostedt@goodmis.org> | 2018-12-22 08:21:05 -0500 |
commit | 59dd974bc079079c23b5429cba841696fa7fae41 (patch) | |
tree | 22fadf53110bc0fe9e0fede28f8bdd8184601512 /kernel/trace/trace_output.c | |
parent | 05ddb25cb31491b0901d057c40ad50d01b3db783 (diff) |
tracing: Merge seq_print_sym_short() and seq_print_sym_offset()
These two functions are nearly identical, so we can avoid some code
duplication by moving the conditional into a common implementation.
Link: http://lkml.kernel.org/r/20181029223542.26175-2-linux@rasmusvillemoes.dk
Signed-off-by: Rasmus Villemoes <linux@rasmusvillemoes.dk>
Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
Diffstat (limited to 'kernel/trace/trace_output.c')
-rw-r--r-- | kernel/trace/trace_output.c | 34 |
1 files changed, 7 insertions, 27 deletions
diff --git a/kernel/trace/trace_output.c b/kernel/trace/trace_output.c index 6e6cc64faa38..85ecd061c7be 100644 --- a/kernel/trace/trace_output.c +++ b/kernel/trace/trace_output.c | |||
@@ -339,34 +339,17 @@ static inline const char *kretprobed(const char *name) | |||
339 | #endif /* CONFIG_KRETPROBES */ | 339 | #endif /* CONFIG_KRETPROBES */ |
340 | 340 | ||
341 | static void | 341 | static void |
342 | seq_print_sym_short(struct trace_seq *s, const char *fmt, unsigned long address) | 342 | seq_print_sym(struct trace_seq *s, const char *fmt, unsigned long address, |
343 | bool offset) | ||
343 | { | 344 | { |
344 | char str[KSYM_SYMBOL_LEN]; | 345 | char str[KSYM_SYMBOL_LEN]; |
345 | #ifdef CONFIG_KALLSYMS | 346 | #ifdef CONFIG_KALLSYMS |
346 | const char *name; | 347 | const char *name; |
347 | 348 | ||
348 | kallsyms_lookup(address, NULL, NULL, NULL, str); | 349 | if (offset) |
349 | 350 | sprint_symbol(str, address); | |
350 | name = kretprobed(str); | 351 | else |
351 | 352 | kallsyms_lookup(address, NULL, NULL, NULL, str); | |
352 | if (name && strlen(name)) { | ||
353 | trace_seq_printf(s, fmt, name); | ||
354 | return; | ||
355 | } | ||
356 | #endif | ||
357 | snprintf(str, KSYM_SYMBOL_LEN, "0x%08lx", address); | ||
358 | trace_seq_printf(s, fmt, str); | ||
359 | } | ||
360 | |||
361 | static void | ||
362 | seq_print_sym_offset(struct trace_seq *s, const char *fmt, | ||
363 | unsigned long address) | ||
364 | { | ||
365 | char str[KSYM_SYMBOL_LEN]; | ||
366 | #ifdef CONFIG_KALLSYMS | ||
367 | const char *name; | ||
368 | |||
369 | sprint_symbol(str, address); | ||
370 | name = kretprobed(str); | 353 | name = kretprobed(str); |
371 | 354 | ||
372 | if (name && strlen(name)) { | 355 | if (name && strlen(name)) { |
@@ -424,10 +407,7 @@ seq_print_ip_sym(struct trace_seq *s, unsigned long ip, unsigned long sym_flags) | |||
424 | goto out; | 407 | goto out; |
425 | } | 408 | } |
426 | 409 | ||
427 | if (sym_flags & TRACE_ITER_SYM_OFFSET) | 410 | seq_print_sym(s, "%s", ip, sym_flags & TRACE_ITER_SYM_OFFSET); |
428 | seq_print_sym_offset(s, "%s", ip); | ||
429 | else | ||
430 | seq_print_sym_short(s, "%s", ip); | ||
431 | 411 | ||
432 | if (sym_flags & TRACE_ITER_SYM_ADDR) | 412 | if (sym_flags & TRACE_ITER_SYM_ADDR) |
433 | trace_seq_printf(s, " <" IP_FMT ">", ip); | 413 | trace_seq_printf(s, " <" IP_FMT ">", ip); |