lkml.org 
[lkml]   [2009]   [Dec]   [8]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [GIT PULL] tracing/kprobes: Fix field creation's bad error handling
    Frederic Weisbecker wrote:
    > Ingo,
    >
    > Please pull the tracing/fixes branch that can be found at:
    >
    > git://git.kernel.org/pub/scm/linux/kernel/git/frederic/random-tracing.git
    > tracing/fixes
    >
    > Thanks,
    > Frederic
    > ---
    >
    > Frederic Weisbecker (1):
    > tracing/kprobes: Fix field creation's bad error handling
    >
    >
    > kernel/trace/trace_kprobe.c | 4 ++--
    > 1 files changed, 2 insertions(+), 2 deletions(-)
    >
    > ---
    > From 12e22dfaaee46f70762beb1982a7b86a68317b11 Mon Sep 17 00:00:00 2001
    > From: Frederic Weisbecker <fweisbec@gmail.com>
    > Date: Tue, 8 Dec 2009 10:00:04 +0100
    > Subject: [PATCH] tracing/kprobes: Fix field creation's bad error handling
    > Cc: Lai Jiangshan <laijs@cn.fujitsu.com>, Steven Rostedt <rostedt@goodmis.org>, Masami Hiramatsu <mhiramat@redhat.com>, Li Zefan <lizf@cn.fujitsu.com>
    >
    > When we define the common event fields in kprobe, we invert the error
    > handling and return immediately in case of success. Then we omit
    > to define specific kprobes fields (ip and nargs), and specific
    > kretprobes fields (func, ret_ip, nargs). And we only define them
    > when we fail to create common fields.
    >
    > The most visible consequence is that we can't create filter for
    > k(ret)probes specific fields.
    >
    > This patch re-invert the success/error handling to fix it.
    >
    > Reported-by: Lai Jiangshan <laijs@cn.fujitsu.com>
    > Signed-off-by: Frederic Weisbecker <fweisbec@gmail.com>
    > Cc: Steven Rostedt <rostedt@goodmis.org>
    > Cc: Masami Hiramatsu <mhiramat@redhat.com>
    > Cc: Li Zefan <lizf@cn.fujitsu.com>

    Thanks for fix that.

    Acked-by: Masami Hiramatsu <mhiramat@redhat.com>


    Ingo, I think this should go to tip:urgent.

    Thank you,

    > ---
    > kernel/trace/trace_kprobe.c | 4 ++--
    > 1 files changed, 2 insertions(+), 2 deletions(-)
    >
    > diff --git a/kernel/trace/trace_kprobe.c b/kernel/trace/trace_kprobe.c
    > index aff5f80..ca04523 100644
    > --- a/kernel/trace/trace_kprobe.c
    > +++ b/kernel/trace/trace_kprobe.c
    > @@ -1114,7 +1114,7 @@ static int kprobe_event_define_fields(struct ftrace_event_call *event_call)
    > struct trace_probe *tp = (struct trace_probe *)event_call->data;
    >
    > ret = trace_define_common_fields(event_call);
    > - if (!ret)
    > + if (ret)
    > return ret;
    >
    > DEFINE_FIELD(unsigned long, ip, FIELD_STRING_IP, 0);
    > @@ -1132,7 +1132,7 @@ static int kretprobe_event_define_fields(struct ftrace_event_call *event_call)
    > struct trace_probe *tp = (struct trace_probe *)event_call->data;
    >
    > ret = trace_define_common_fields(event_call);
    > - if (!ret)
    > + if (ret)
    > return ret;
    >
    > DEFINE_FIELD(unsigned long, func, FIELD_STRING_FUNC, 0);

    --
    Masami Hiramatsu

    Software Engineer
    Hitachi Computer Products (America), Inc.
    Software Solutions Division

    e-mail: mhiramat@redhat.com



    \
     
     \ /
      Last update: 2009-12-08 12:59    [W:0.028 / U:28.964 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site