diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c index 6ada059..50ac334 100644 --- a/kernel/trace/trace.c +++ b/kernel/trace/trace.c @@ -1904,20 +1904,27 @@ static int trace_empty(struct trace_iterator *iter) static int print_trace_line(struct trace_iterator *iter) { + int ret; + if (iter->trace && iter->trace->print_line) - return iter->trace->print_line(iter); + if ((ret = iter->trace->print_line(iter))) + return ret; if (trace_flags & TRACE_ITER_BIN) - return print_bin_fmt(iter); + if ((ret = print_bin_fmt(iter))) + return ret; if (trace_flags & TRACE_ITER_HEX) - return print_hex_fmt(iter); + if ((ret = print_hex_fmt(iter))) + return ret; if (trace_flags & TRACE_ITER_RAW) - return print_raw_fmt(iter); + if ((ret = print_raw_fmt(iter))) + return ret; if (iter->iter_flags & TRACE_FILE_LAT_FMT) - return print_lat_fmt(iter, iter->idx, iter->cpu); + if ((ret = print_lat_fmt(iter, iter->idx, iter->cpu))) + return ret; return print_trace_fmt(iter); }