浏览代码

perf probe: Fix to exit callback soon after finding too many probe points

Fix to exit callback soon after finding too many probe points.
Don't try to continue searching because it already failed.

Signed-off-by: Masami Hiramatsu <mhiramat@redhat.com>
Reported-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Mike Galbraith <efault@gmx.de>
Cc: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Ingo Molnar <mingo@elte.hu>
LKML-Reference: <20100421195632.24664.42598.stgit@localhost6.localdomain6>
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Masami Hiramatsu 15 年之前
父节点
当前提交
5d1ee0413c
共有 1 个文件被更改,包括 4 次插入0 次删除
  1. 4 0
      tools/perf/util/probe-finder.c

+ 4 - 0
tools/perf/util/probe-finder.c

@@ -871,6 +871,8 @@ static int probe_point_inline_cb(Dwarf_Die *in_die, void *data)
 			 (uintmax_t)pf->addr);
 			 (uintmax_t)pf->addr);
 
 
 		param->retval = convert_probe_point(in_die, pf);
 		param->retval = convert_probe_point(in_die, pf);
+		if (param->retval < 0)
+			return DWARF_CB_ABORT;
 	}
 	}
 
 
 	return DWARF_CB_OK;
 	return DWARF_CB_OK;
@@ -1106,6 +1108,8 @@ static int line_range_funcdecl_cb(Dwarf_Die *sp_die, void *data)
 		return DWARF_CB_OK;
 		return DWARF_CB_OK;
 
 
 	param->retval = line_range_add_line(src, lineno, lf->lr);
 	param->retval = line_range_add_line(src, lineno, lf->lr);
+	if (param->retval < 0)
+		return DWARF_CB_ABORT;
 	return DWARF_CB_OK;
 	return DWARF_CB_OK;
 }
 }