lkml.org 
[lkml]   [2014]   [Nov]   [17]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    From
    SubjectRe: [RFC][PATCH 11/23 v4] tracing: Do not use return values of trace_seq_printf() in syscall tracing
    Date
    On Thu, 13 Nov 2014 20:12:55 -0500, Steven Rostedt wrote:
    > From: "Steven Rostedt (Red Hat)" <rostedt@goodmis.org>
    >
    > The functions trace_seq_printf() and friends will not be returning values
    > soon and will be void functions. To know if they succeeded or not, the
    > functions trace_seq_has_overflowed() and trace_handle_return() should be
    > used instead.
    >
    > Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
    > ---
    > kernel/trace/trace_syscalls.c | 43 +++++++++++++++----------------------------
    > 1 file changed, 15 insertions(+), 28 deletions(-)
    >
    > diff --git a/kernel/trace/trace_syscalls.c b/kernel/trace/trace_syscalls.c
    > index 4dc8b79c5f75..2193e8038681 100644
    > --- a/kernel/trace/trace_syscalls.c
    > +++ b/kernel/trace/trace_syscalls.c
    > @@ -114,7 +114,7 @@ print_syscall_enter(struct trace_iterator *iter, int flags,
    > struct trace_entry *ent = iter->ent;
    > struct syscall_trace_enter *trace;
    > struct syscall_metadata *entry;
    > - int i, ret, syscall;
    > + int i, syscall;
    >
    > trace = (typeof(trace))ent;
    > syscall = trace->nr;
    > @@ -128,35 +128,24 @@ print_syscall_enter(struct trace_iterator *iter, int flags,
    > goto end;
    > }
    >
    > - ret = trace_seq_printf(s, "%s(", entry->name);
    > - if (!ret)
    > - return TRACE_TYPE_PARTIAL_LINE;
    > + trace_seq_printf(s, "%s(", entry->name);
    >
    > for (i = 0; i < entry->nb_args; i++) {

    if (trace_seq_has_overflowed())
    goto end;
    ?

    Thanks,
    Namhyung


    > /* parameter types */
    > - if (trace_flags & TRACE_ITER_VERBOSE) {
    > - ret = trace_seq_printf(s, "%s ", entry->types[i]);
    > - if (!ret)
    > - return TRACE_TYPE_PARTIAL_LINE;
    > - }
    > + if (trace_flags & TRACE_ITER_VERBOSE)
    > + trace_seq_printf(s, "%s ", entry->types[i]);
    > +
    > /* parameter values */
    > - ret = trace_seq_printf(s, "%s: %lx%s", entry->args[i],
    > - trace->args[i],
    > - i == entry->nb_args - 1 ? "" : ", ");
    > - if (!ret)
    > - return TRACE_TYPE_PARTIAL_LINE;
    > + trace_seq_printf(s, "%s: %lx%s", entry->args[i],
    > + trace->args[i],
    > + i == entry->nb_args - 1 ? "" : ", ");
    > }
    >
    > - ret = trace_seq_putc(s, ')');
    > - if (!ret)
    > - return TRACE_TYPE_PARTIAL_LINE;
    > -
    > + trace_seq_putc(s, ')');
    > end:
    > - ret = trace_seq_putc(s, '\n');
    > - if (!ret)
    > - return TRACE_TYPE_PARTIAL_LINE;
    > + trace_seq_putc(s, '\n');
    >
    > - return TRACE_TYPE_HANDLED;
    > + return trace_handle_return(s);
    > }


    \
     
     \ /
      Last update: 2014-11-18 02:21    [W:4.256 / U:0.028 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site