aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAmit Pundir <amit.pundir@linaro.org>2015-07-06 17:26:38 +0530
committerAmit Pundir <amit.pundir@linaro.org>2015-07-21 00:54:45 +0530
commita65b1a17a3957e405b714d72cb4a0f0840f31b6b (patch)
treeeb4bef829b4a7fac74f4a3aed0ae9a2290383dff
parent68b38ae527fec31b870aa243e69da4c80d13becc (diff)
trace: fix aosp's non-hierarchical function_graph build
AOSP commit 6f6f99a38132 "trace: add non-hierarchical function_graph option", run into following build error: -------------------- CC kernel/trace/trace_output.o kernel/trace/trace_output.c: In function ‘trace_graph_ent_trace’: kernel/trace/trace_output.c:906:2: error: invalid use of void expression kernel/trace/trace_output.c:912:2: error: invalid use of void expression kernel/trace/trace_output.c: In function ‘trace_graph_ent_raw’: kernel/trace/trace_output.c:927:10: error: invalid use of void expression kernel/trace/trace_output.c: In function ‘trace_graph_ent_hex’: kernel/trace/trace_output.c:941:2: error: implicit declaration of function ‘SEQ_PUT_HEX_FIELD_RET’ [-Werror=implicit-function-declaration] kernel/trace/trace_output.c: In function ‘trace_graph_ent_bin’: kernel/trace/trace_output.c:955:2: error: implicit declaration of function ‘SEQ_PUT_FIELD_RET’ [-Werror=implicit-function-declaration] kernel/trace/trace_output.c: In function ‘trace_graph_ret_trace’: kernel/trace/trace_output.c:983:2: error: invalid use of void expression kernel/trace/trace_output.c:989:2: error: invalid use of void expression kernel/trace/trace_output.c: In function ‘trace_graph_ret_raw’: kernel/trace/trace_output.c:1007:10: error: invalid use of void expression cc1: some warnings being treated as errors make[2]: *** [kernel/trace/trace_output.o] Error 1 make[1]: *** [kernel/trace] Error 2 make[1]: *** Waiting for unfinished jobs.... -------------------- Fixes: 1) Do not use return value of trace_seq_printf() in syscall tracing, use trace_seq_has_overflowed() instead (mainline commit 183742f08c55). 2) Use SEQ_PUT_{FIELD,HEX_FIELD} macros instead of obsolete SEQ_PUT_{FIELD_RET,HEX_FIELD_RET} macros (mainline commit 19a7fe206232, "tracing: Add trace_seq_has_overflowed() and trace_handle_return()"). Signed-off-by: Amit Pundir <amit.pundir@linaro.org>
-rw-r--r--kernel/trace/trace_output.c50
1 files changed, 28 insertions, 22 deletions
diff --git a/kernel/trace/trace_output.c b/kernel/trace/trace_output.c
index d2a21cae32ac..d8c8cf2ceb9f 100644
--- a/kernel/trace/trace_output.c
+++ b/kernel/trace/trace_output.c
@@ -903,13 +903,15 @@ static enum print_line_t trace_graph_ent_trace(struct trace_iterator *iter, int
trace_assign_type(field, iter->ent);
- if (!trace_seq_puts(s, "graph_ent: func="))
+ trace_seq_puts(s, "graph_ent: func=");
+ if (trace_seq_has_overflowed(s))
return TRACE_TYPE_PARTIAL_LINE;
if (!seq_print_ip_sym(s, field->graph_ent.func, flags))
return TRACE_TYPE_PARTIAL_LINE;
- if (!trace_seq_puts(s, "\n"))
+ trace_seq_puts(s, "\n");
+ if (trace_seq_has_overflowed(s))
return TRACE_TYPE_PARTIAL_LINE;
return TRACE_TYPE_HANDLED;
@@ -922,9 +924,10 @@ static enum print_line_t trace_graph_ent_raw(struct trace_iterator *iter, int fl
trace_assign_type(field, iter->ent);
- if (!trace_seq_printf(&iter->seq, "%lx %d\n",
+ trace_seq_printf(&iter->seq, "%lx %d\n",
field->graph_ent.func,
- field->graph_ent.depth))
+ field->graph_ent.depth);
+ if (trace_seq_has_overflowed(&iter->seq))
return TRACE_TYPE_PARTIAL_LINE;
return TRACE_TYPE_HANDLED;
@@ -938,8 +941,8 @@ static enum print_line_t trace_graph_ent_hex(struct trace_iterator *iter, int fl
trace_assign_type(field, iter->ent);
- SEQ_PUT_HEX_FIELD_RET(s, field->graph_ent.func);
- SEQ_PUT_HEX_FIELD_RET(s, field->graph_ent.depth);
+ SEQ_PUT_HEX_FIELD(s, field->graph_ent.func);
+ SEQ_PUT_HEX_FIELD(s, field->graph_ent.depth);
return TRACE_TYPE_HANDLED;
}
@@ -952,8 +955,8 @@ static enum print_line_t trace_graph_ent_bin(struct trace_iterator *iter, int fl
trace_assign_type(field, iter->ent);
- SEQ_PUT_FIELD_RET(s, field->graph_ent.func);
- SEQ_PUT_FIELD_RET(s, field->graph_ent.depth);
+ SEQ_PUT_FIELD(s, field->graph_ent.func);
+ SEQ_PUT_FIELD(s, field->graph_ent.depth);
return TRACE_TYPE_HANDLED;
}
@@ -980,13 +983,15 @@ static enum print_line_t trace_graph_ret_trace(struct trace_iterator *iter, int
trace_assign_type(field, entry);
- if (!trace_seq_puts(s, "graph_ret: func="))
+ trace_seq_puts(s, "graph_ret: func=");
+ if (trace_seq_has_overflowed(s))
return TRACE_TYPE_PARTIAL_LINE;
if (!seq_print_ip_sym(s, field->ret.func, flags))
return TRACE_TYPE_PARTIAL_LINE;
- if (!trace_seq_puts(s, "\n"))
+ trace_seq_puts(s, "\n");
+ if (trace_seq_has_overflowed(s))
return TRACE_TYPE_PARTIAL_LINE;
return TRACE_TYPE_HANDLED;
@@ -999,12 +1004,13 @@ static enum print_line_t trace_graph_ret_raw(struct trace_iterator *iter, int fl
trace_assign_type(field, iter->ent);
- if (!trace_seq_printf(&iter->seq, "%lx %lld %lld %ld %d\n",
+ trace_seq_printf(&iter->seq, "%lx %lld %lld %ld %d\n",
field->ret.func,
field->ret.calltime,
field->ret.rettime,
field->ret.overrun,
- field->ret.depth));
+ field->ret.depth);
+ if (trace_seq_has_overflowed(&iter->seq))
return TRACE_TYPE_PARTIAL_LINE;
return TRACE_TYPE_HANDLED;
@@ -1018,11 +1024,11 @@ static enum print_line_t trace_graph_ret_hex(struct trace_iterator *iter, int fl
trace_assign_type(field, iter->ent);
- SEQ_PUT_HEX_FIELD_RET(s, field->ret.func);
- SEQ_PUT_HEX_FIELD_RET(s, field->ret.calltime);
- SEQ_PUT_HEX_FIELD_RET(s, field->ret.rettime);
- SEQ_PUT_HEX_FIELD_RET(s, field->ret.overrun);
- SEQ_PUT_HEX_FIELD_RET(s, field->ret.depth);
+ SEQ_PUT_HEX_FIELD(s, field->ret.func);
+ SEQ_PUT_HEX_FIELD(s, field->ret.calltime);
+ SEQ_PUT_HEX_FIELD(s, field->ret.rettime);
+ SEQ_PUT_HEX_FIELD(s, field->ret.overrun);
+ SEQ_PUT_HEX_FIELD(s, field->ret.depth);
return TRACE_TYPE_HANDLED;
}
@@ -1035,11 +1041,11 @@ static enum print_line_t trace_graph_ret_bin(struct trace_iterator *iter, int fl
trace_assign_type(field, iter->ent);
- SEQ_PUT_FIELD_RET(s, field->ret.func);
- SEQ_PUT_FIELD_RET(s, field->ret.calltime);
- SEQ_PUT_FIELD_RET(s, field->ret.rettime);
- SEQ_PUT_FIELD_RET(s, field->ret.overrun);
- SEQ_PUT_FIELD_RET(s, field->ret.depth);
+ SEQ_PUT_FIELD(s, field->ret.func);
+ SEQ_PUT_FIELD(s, field->ret.calltime);
+ SEQ_PUT_FIELD(s, field->ret.rettime);
+ SEQ_PUT_FIELD(s, field->ret.overrun);
+ SEQ_PUT_FIELD(s, field->ret.depth);
return TRACE_TYPE_HANDLED;
}