lkml.org 
[lkml]   [2011]   [Sep]   [23]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 01/12] perf probe: Fix regression of variable finder
    Date
    From: Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com>

    Fix to call convert_variable() if previous call does not fail.

    To call convert_variable, it ensures "ret" is 0. However, since
    "ret" has the return value of synthesize_perf_probe_arg() which
    always returns positive value if it succeeded, perf probe doesn't
    call convert_variable(). This will cause a SEGV when we add an
    event with arguments.

    This has to be fixed as it ensures "ret" is greater than 0
    (or not negative).

    This regression has been introduced by my previous patch, f182e3e1.

    Cc: Frederic Weisbecker <fweisbec@gmail.com>
    Cc: Ingo Molnar <mingo@elte.hu>
    Cc: Paul Mackerras <paulus@samba.org>
    Cc: Pekka Enberg <penberg@kernel.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: yrl.pp-manager.tt@hitachi.com
    Link: http://lkml.kernel.org/r/20110820053922.3286.65805.stgit@fedora15
    Signed-off-by: Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com>
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    ---
    tools/perf/util/probe-finder.c | 2 +-
    1 files changed, 1 insertions(+), 1 deletions(-)

    diff --git a/tools/perf/util/probe-finder.c b/tools/perf/util/probe-finder.c
    index 555fc38..5d73262 100644
    --- a/tools/perf/util/probe-finder.c
    +++ b/tools/perf/util/probe-finder.c
    @@ -659,7 +659,7 @@ static int find_variable(Dwarf_Die *sc_die, struct probe_finder *pf)
    if (!die_find_variable_at(&pf->cu_die, pf->pvar->var, 0, &vr_die))
    ret = -ENOENT;
    }
    - if (ret == 0)
    + if (ret >= 0)
    ret = convert_variable(&vr_die, pf);

    if (ret < 0)
    --
    1.6.2.5


    \
     
     \ /
      Last update: 2011-09-23 22:29    [W:0.024 / U:31.516 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site