diff options
author | Amit Pundir <amit.pundir@linaro.org> | 2015-07-06 17:26:38 +0530 |
---|---|---|
committer | Amit Pundir <amit.pundir@linaro.org> | 2015-07-21 00:54:45 +0530 |
commit | a65b1a17a3957e405b714d72cb4a0f0840f31b6b (patch) | |
tree | eb4bef829b4a7fac74f4a3aed0ae9a2290383dff | |
parent | 68b38ae527fec31b870aa243e69da4c80d13becc (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.c | 50 |
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; } |