diff options
-rw-r--r-- | kernel/trace/trace_output.c | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/kernel/trace/trace_output.c b/kernel/trace/trace_output.c index 64596a571609..8dadbbbd2d5c 100644 --- a/kernel/trace/trace_output.c +++ b/kernel/trace/trace_output.c | |||
@@ -389,17 +389,20 @@ seq_print_userip_objs(const struct userstack_entry *entry, struct trace_seq *s, | |||
389 | 389 | ||
390 | if (ip == ULONG_MAX || !ret) | 390 | if (ip == ULONG_MAX || !ret) |
391 | break; | 391 | break; |
392 | if (i && ret) | 392 | if (ret) |
393 | ret = trace_seq_puts(s, " <- "); | 393 | ret = trace_seq_puts(s, " => "); |
394 | if (!ip) { | 394 | if (!ip) { |
395 | if (ret) | 395 | if (ret) |
396 | ret = trace_seq_puts(s, "??"); | 396 | ret = trace_seq_puts(s, "??"); |
397 | if (ret) | ||
398 | ret = trace_seq_puts(s, "\n"); | ||
397 | continue; | 399 | continue; |
398 | } | 400 | } |
399 | if (!ret) | 401 | if (!ret) |
400 | break; | 402 | break; |
401 | if (ret) | 403 | if (ret) |
402 | ret = seq_print_user_ip(s, mm, ip, sym_flags); | 404 | ret = seq_print_user_ip(s, mm, ip, sym_flags); |
405 | ret = trace_seq_puts(s, "\n"); | ||
403 | } | 406 | } |
404 | 407 | ||
405 | if (mm) | 408 | if (mm) |
@@ -1012,10 +1015,10 @@ static enum print_line_t trace_user_stack_print(struct trace_iterator *iter, | |||
1012 | 1015 | ||
1013 | trace_assign_type(field, iter->ent); | 1016 | trace_assign_type(field, iter->ent); |
1014 | 1017 | ||
1015 | if (!seq_print_userip_objs(field, s, flags)) | 1018 | if (!trace_seq_putc(s, '\n')) |
1016 | goto partial; | 1019 | goto partial; |
1017 | 1020 | ||
1018 | if (!trace_seq_putc(s, '\n')) | 1021 | if (!seq_print_userip_objs(field, s, flags)) |
1019 | goto partial; | 1022 | goto partial; |
1020 | 1023 | ||
1021 | return TRACE_TYPE_HANDLED; | 1024 | return TRACE_TYPE_HANDLED; |