trace/ring-buffer: Do not use TP_printk() formatting for boot mapped buffers
Changes
1 files changed · +9 −0
| File | Status | Add | Del | Content |
|---|---|---|---|---|
| kernel/trace/trace.c | modified | +9 | −0 | View file |
kernel/trace/trace.c
View filediff --git a/kernel/trace/trace.c b/kernel/trace/trace.c
index be62f0e..6581cb2 100644
--- a/kernel/trace/trace.c
+++ b/kernel/trace/trace.c
@@ -4353,6 +4353,15 @@ static enum print_line_t print_trace_fmt(struct trace_iterator *iter)
if (event) {
if (tr->trace_flags & TRACE_ITER_FIELDS)
return print_event_fields(iter, event);
+ /*
+ * For TRACE_EVENT() events, the print_fmt is not
+ * safe to use if the array has delta offsets
+ * Force printing via the fields.
+ */
+ if ((tr->text_delta || tr->data_delta) &&
+ event->type > __TRACE_LAST_TYPE)
+ return print_event_fields(iter, event);
+
return event->funcs->trace(iter, sym_flags, event);
}