diff options
Diffstat (limited to 'kernel/trace/trace_output.c')
-rw-r--r-- | kernel/trace/trace_output.c | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/kernel/trace/trace_output.c b/kernel/trace/trace_output.c index 08f9bab8089e..01ff99969ca7 100644 --- a/kernel/trace/trace_output.c +++ b/kernel/trace/trace_output.c | |||
@@ -340,31 +340,41 @@ static inline const char *kretprobed(const char *name) | |||
340 | static void | 340 | static void |
341 | seq_print_sym_short(struct trace_seq *s, const char *fmt, unsigned long address) | 341 | seq_print_sym_short(struct trace_seq *s, const char *fmt, unsigned long address) |
342 | { | 342 | { |
343 | #ifdef CONFIG_KALLSYMS | ||
344 | char str[KSYM_SYMBOL_LEN]; | 343 | char str[KSYM_SYMBOL_LEN]; |
344 | #ifdef CONFIG_KALLSYMS | ||
345 | const char *name; | 345 | const char *name; |
346 | 346 | ||
347 | kallsyms_lookup(address, NULL, NULL, NULL, str); | 347 | kallsyms_lookup(address, NULL, NULL, NULL, str); |
348 | 348 | ||
349 | name = kretprobed(str); | 349 | name = kretprobed(str); |
350 | 350 | ||
351 | trace_seq_printf(s, fmt, name); | 351 | if (name && strlen(name)) { |
352 | trace_seq_printf(s, fmt, name); | ||
353 | return; | ||
354 | } | ||
352 | #endif | 355 | #endif |
356 | snprintf(str, KSYM_SYMBOL_LEN, "0x%08lx", address); | ||
357 | trace_seq_printf(s, fmt, str); | ||
353 | } | 358 | } |
354 | 359 | ||
355 | static void | 360 | static void |
356 | seq_print_sym_offset(struct trace_seq *s, const char *fmt, | 361 | seq_print_sym_offset(struct trace_seq *s, const char *fmt, |
357 | unsigned long address) | 362 | unsigned long address) |
358 | { | 363 | { |
359 | #ifdef CONFIG_KALLSYMS | ||
360 | char str[KSYM_SYMBOL_LEN]; | 364 | char str[KSYM_SYMBOL_LEN]; |
365 | #ifdef CONFIG_KALLSYMS | ||
361 | const char *name; | 366 | const char *name; |
362 | 367 | ||
363 | sprint_symbol(str, address); | 368 | sprint_symbol(str, address); |
364 | name = kretprobed(str); | 369 | name = kretprobed(str); |
365 | 370 | ||
366 | trace_seq_printf(s, fmt, name); | 371 | if (name && strlen(name)) { |
372 | trace_seq_printf(s, fmt, name); | ||
373 | return; | ||
374 | } | ||
367 | #endif | 375 | #endif |
376 | snprintf(str, KSYM_SYMBOL_LEN, "0x%08lx", address); | ||
377 | trace_seq_printf(s, fmt, str); | ||
368 | } | 378 | } |
369 | 379 | ||
370 | #ifndef CONFIG_64BIT | 380 | #ifndef CONFIG_64BIT |