Re: [RFC][PATCH 09/23 v4] tracing/probes: Do not use return value of trace_seq_printf()

From: Namhyung Kim
Date: Mon Nov 17 2014 - 19:31:11 EST


Hi Steve,

On Thu, 13 Nov 2014 20:12:53 -0500, Steven Rostedt wrote:
> From: "Steven Rostedt (Red Hat)" <rostedt@xxxxxxxxxxx>
>
> The functions trace_seq_printf() and friends will soon not have a return
> value and will only be a void function. Use trace_seq_has_overflowed()
> instead to know if the trace_seq operations succeeded or not.
>
> Cc: Masami Hiramatsu <masami.hiramatsu.pt@xxxxxxxxxxx>
> Cc: Namhyung Kim <namhyung@xxxxxxxxxx>
> Signed-off-by: Steven Rostedt <rostedt@xxxxxxxxxxx>
> ---
> kernel/trace/trace_probe.c | 10 ++++++----
> 1 file changed, 6 insertions(+), 4 deletions(-)
>
> diff --git a/kernel/trace/trace_probe.c b/kernel/trace/trace_probe.c
> index d4b9fc22cd27..b983b2fd2ca1 100644
> --- a/kernel/trace/trace_probe.c
> +++ b/kernel/trace/trace_probe.c
> @@ -40,7 +40,8 @@ const char *reserved_field_names[] = {
> int PRINT_TYPE_FUNC_NAME(type)(struct trace_seq *s, const char *name, \
> void *data, void *ent) \
> { \
> - return trace_seq_printf(s, " %s=" fmt, name, *(type *)data); \
> + trace_seq_printf(s, " %s=" fmt, name, *(type *)data); \
> + return !trace_seq_has_overflowed(s); \

At first, I wondered why you used this instead of trace_handle_return()
but I found out that it's only used for checking loop break so I'm okay
with this.

Acked-by: Namhyung Kim <namhyung@xxxxxxxxxx>

Thanks,
Namhyung


> } \
> const char PRINT_TYPE_FMT_NAME(type)[] = fmt; \
> NOKPROBE_SYMBOL(PRINT_TYPE_FUNC_NAME(type));
> @@ -61,10 +62,11 @@ int PRINT_TYPE_FUNC_NAME(string)(struct trace_seq *s, const char *name,
> int len = *(u32 *)data >> 16;
>
> if (!len)
> - return trace_seq_printf(s, " %s=(fault)", name);
> + trace_seq_printf(s, " %s=(fault)", name);
> else
> - return trace_seq_printf(s, " %s=\"%s\"", name,
> - (const char *)get_loc_data(data, ent));
> + trace_seq_printf(s, " %s=\"%s\"", name,
> + (const char *)get_loc_data(data, ent));
> + return !trace_seq_has_overflowed(s);
> }
> NOKPROBE_SYMBOL(PRINT_TYPE_FUNC_NAME(string));
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/