diff options
Diffstat (limited to 'kernel/trace/trace.c')
-rw-r--r-- | kernel/trace/trace.c | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c index d38c16a06a6f..e0e14ce0caab 100644 --- a/kernel/trace/trace.c +++ b/kernel/trace/trace.c | |||
@@ -2013,9 +2013,10 @@ enum print_line_t print_trace_line(struct trace_iterator *iter) | |||
2013 | { | 2013 | { |
2014 | enum print_line_t ret; | 2014 | enum print_line_t ret; |
2015 | 2015 | ||
2016 | if (iter->lost_events) | 2016 | if (iter->lost_events && |
2017 | trace_seq_printf(&iter->seq, "CPU:%d [LOST %lu EVENTS]\n", | 2017 | !trace_seq_printf(&iter->seq, "CPU:%d [LOST %lu EVENTS]\n", |
2018 | iter->cpu, iter->lost_events); | 2018 | iter->cpu, iter->lost_events)) |
2019 | return TRACE_TYPE_PARTIAL_LINE; | ||
2019 | 2020 | ||
2020 | if (iter->trace && iter->trace->print_line) { | 2021 | if (iter->trace && iter->trace->print_line) { |
2021 | ret = iter->trace->print_line(iter); | 2022 | ret = iter->trace->print_line(iter); |
@@ -3229,6 +3230,14 @@ waitagain: | |||
3229 | 3230 | ||
3230 | if (iter->seq.len >= cnt) | 3231 | if (iter->seq.len >= cnt) |
3231 | break; | 3232 | break; |
3233 | |||
3234 | /* | ||
3235 | * Setting the full flag means we reached the trace_seq buffer | ||
3236 | * size and we should leave by partial output condition above. | ||
3237 | * One of the trace_seq_* functions is not used properly. | ||
3238 | */ | ||
3239 | WARN_ONCE(iter->seq.full, "full flag set for trace type %d", | ||
3240 | iter->ent->type); | ||
3232 | } | 3241 | } |
3233 | trace_access_unlock(iter->cpu_file); | 3242 | trace_access_unlock(iter->cpu_file); |
3234 | trace_event_read_unlock(); | 3243 | trace_event_read_unlock(); |