(2014/04/01 13:47), Namhyung Kim wrote: > The commit 5a62257a3ddd1 ("perf probe: Replace line_list with > intlist") replaced line_list to intlist but it has a problem that if a > same line was added again, it'd return -EEXIST rather than 1.
Ah, right! that's a different behavior. > Since line_range_walk_cb() only checks the result being negative, it > resulted in failure or segfault sometimes. Could you give me an example input of the segfault? I'd like to trace it down. > Cc: Masami Hiramatsu <masami.hiramatsu...@hitachi.com> > Signed-off-by: Namhyung Kim <namhy...@kernel.org> Acked-by: Masami Hiramatsu <masami.hiramatsu...@hitachi.com> Thank you very much! > --- > tools/perf/util/probe-finder.c | 6 ++++-- > 1 file changed, 4 insertions(+), 2 deletions(-) > > diff --git a/tools/perf/util/probe-finder.c b/tools/perf/util/probe-finder.c > index df0238654698..3bf0c8cdccb7 100644 > --- a/tools/perf/util/probe-finder.c > +++ b/tools/perf/util/probe-finder.c > @@ -1441,13 +1441,15 @@ static int line_range_walk_cb(const char *fname, int > lineno, > void *data) > { > struct line_finder *lf = data; > + int err; > > if ((strtailcmp(fname, lf->fname) != 0) || > (lf->lno_s > lineno || lf->lno_e < lineno)) > return 0; > > - if (line_range_add_line(fname, lineno, lf->lr) < 0) > - return -EINVAL; > + err = line_range_add_line(fname, lineno, lf->lr); > + if (err < 0 && err != -EEXIST) > + return err; > > return 0; > } > -- Masami HIRAMATSU IT Management Research Dept. Linux Technology Center Hitachi, Ltd., Yokohama Research Laboratory E-mail: masami.hiramatsu...@hitachi.com -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/