diff options
Diffstat (limited to 'kernel/trace/trace_output.c')
-rw-r--r-- | kernel/trace/trace_output.c | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/kernel/trace/trace_output.c b/kernel/trace/trace_output.c index 0d6ff3555942..c5a01873567d 100644 --- a/kernel/trace/trace_output.c +++ b/kernel/trace/trace_output.c | |||
@@ -300,7 +300,7 @@ ftrace_print_flags_seq(struct trace_seq *p, const char *delim, | |||
300 | unsigned long mask; | 300 | unsigned long mask; |
301 | const char *str; | 301 | const char *str; |
302 | const char *ret = p->buffer + p->len; | 302 | const char *ret = p->buffer + p->len; |
303 | int i; | 303 | int i, first = 1; |
304 | 304 | ||
305 | for (i = 0; flag_array[i].name && flags; i++) { | 305 | for (i = 0; flag_array[i].name && flags; i++) { |
306 | 306 | ||
@@ -310,14 +310,16 @@ ftrace_print_flags_seq(struct trace_seq *p, const char *delim, | |||
310 | 310 | ||
311 | str = flag_array[i].name; | 311 | str = flag_array[i].name; |
312 | flags &= ~mask; | 312 | flags &= ~mask; |
313 | if (p->len && delim) | 313 | if (!first && delim) |
314 | trace_seq_puts(p, delim); | 314 | trace_seq_puts(p, delim); |
315 | else | ||
316 | first = 0; | ||
315 | trace_seq_puts(p, str); | 317 | trace_seq_puts(p, str); |
316 | } | 318 | } |
317 | 319 | ||
318 | /* check for left over flags */ | 320 | /* check for left over flags */ |
319 | if (flags) { | 321 | if (flags) { |
320 | if (p->len && delim) | 322 | if (!first && delim) |
321 | trace_seq_puts(p, delim); | 323 | trace_seq_puts(p, delim); |
322 | trace_seq_printf(p, "0x%lx", flags); | 324 | trace_seq_printf(p, "0x%lx", flags); |
323 | } | 325 | } |
@@ -344,7 +346,7 @@ ftrace_print_symbols_seq(struct trace_seq *p, unsigned long val, | |||
344 | break; | 346 | break; |
345 | } | 347 | } |
346 | 348 | ||
347 | if (!p->len) | 349 | if (ret == (const char *)(p->buffer + p->len)) |
348 | trace_seq_printf(p, "0x%lx", val); | 350 | trace_seq_printf(p, "0x%lx", val); |
349 | 351 | ||
350 | trace_seq_putc(p, 0); | 352 | trace_seq_putc(p, 0); |
@@ -370,7 +372,7 @@ ftrace_print_symbols_seq_u64(struct trace_seq *p, unsigned long long val, | |||
370 | break; | 372 | break; |
371 | } | 373 | } |
372 | 374 | ||
373 | if (!p->len) | 375 | if (ret == (const char *)(p->buffer + p->len)) |
374 | trace_seq_printf(p, "0x%llx", val); | 376 | trace_seq_printf(p, "0x%llx", val); |
375 | 377 | ||
376 | trace_seq_putc(p, 0); | 378 | trace_seq_putc(p, 0); |