Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1324164
| From | Namhyung Kim <namhyung@kernel.org> |
|---|---|
| Newsgroups | linux.kernel |
| Subject | [PATCH 05/21] perf callchain: Check return value of append_chain_children() |
| Date | 2016-02-02 15:50 +0100 |
| Message-ID | <qXKri-4kd-61@gated-at.bofh.it> (permalink) |
| References | <qXKrf-4kd-3@gated-at.bofh.it> |
| Organization | linux.* mail to news gateway |
Now it can check the error case, so check and pass it to the caller.
Acked-by: Jiri Olsa <jolsa@kernel.org>
Cc: Frederic Weisbecker <fweisbec@gmail.com>
Signed-off-by: Namhyung Kim <namhyung@kernel.org>
---
tools/perf/util/callchain.c | 18 ++++++++++++------
1 file changed, 12 insertions(+), 6 deletions(-)
diff --git a/tools/perf/util/callchain.c b/tools/perf/util/callchain.c
index 5259379892e1..24b4bd0d7754 100644
--- a/tools/perf/util/callchain.c
+++ b/tools/perf/util/callchain.c
@@ -586,7 +586,7 @@ append_chain(struct callchain_node *root,
struct callchain_cursor *cursor,
u64 period);
-static void
+static int
append_chain_children(struct callchain_node *root,
struct callchain_cursor *cursor,
u64 period)
@@ -598,7 +598,7 @@ append_chain_children(struct callchain_node *root,
node = callchain_cursor_current(cursor);
if (!node)
- return;
+ return -1;
/* lookup in childrens */
while (*p) {
@@ -611,6 +611,8 @@ append_chain_children(struct callchain_node *root,
ret = append_chain(rnode, cursor, period);
if (ret == MATCH_EQ)
goto inc_children_hit;
+ if (ret == MATCH_ERROR)
+ return -1;
if (ret == MATCH_LT)
p = &parent->rb_left;
@@ -620,7 +622,7 @@ append_chain_children(struct callchain_node *root,
/* nothing in children, add to the current node */
rnode = add_child(root, cursor, period);
if (rnode == NULL)
- return;
+ return -1;
rb_link_node(&rnode->rb_node_in, parent, p);
rb_insert_color(&rnode->rb_node_in, &root->rb_root_in);
@@ -628,6 +630,7 @@ append_chain_children(struct callchain_node *root,
inc_children_hit:
root->children_hit += period;
root->children_count++;
+ return 0;
}
static enum match_result
@@ -688,7 +691,8 @@ append_chain(struct callchain_node *root,
}
/* We match the node and still have a part remaining */
- append_chain_children(root, cursor, period);
+ if (append_chain_children(root, cursor, period) < 0)
+ return MATCH_ERROR;
return MATCH_EQ;
}
@@ -702,7 +706,8 @@ int callchain_append(struct callchain_root *root,
callchain_cursor_commit(cursor);
- append_chain_children(&root->node, cursor, period);
+ if (append_chain_children(&root->node, cursor, period) < 0)
+ return -1;
if (cursor->nr > root->max_depth)
root->max_depth = cursor->nr;
@@ -730,7 +735,8 @@ merge_chain_branch(struct callchain_cursor *cursor,
if (src->hit) {
callchain_cursor_commit(cursor);
- append_chain_children(dst, cursor, src->hit);
+ if (append_chain_children(dst, cursor, src->hit) < 0)
+ return -1;
}
n = rb_first(&src->rb_root_in);
--
2.6.4
Back to linux.kernel | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
[PATCHSET 00/21] perf tools: Add support for hierachy view (v4) Namhyung Kim <namhyung@kernel.org> - 2016-02-02 15:50 +0100 [PATCH 04/21] perf callchain: Check return value of split_add_child() Namhyung Kim <namhyung@kernel.org> - 2016-02-02 15:50 +0100 [PATCH 10/21] perf hists: Add helper functions for hierarchy mode Namhyung Kim <namhyung@kernel.org> - 2016-02-02 15:50 +0100 [PATCH 15/21] perf hists browser: Support collapsing/expanding whole entries in hierarchy Namhyung Kim <namhyung@kernel.org> - 2016-02-02 15:50 +0100 [PATCH 09/21] perf hists: Resort hist entries with hierarchy Namhyung Kim <namhyung@kernel.org> - 2016-02-02 15:50 +0100 [PATCH 12/21] perf ui/stdio: Implement hierarchy output mode Namhyung Kim <namhyung@kernel.org> - 2016-02-02 15:50 +0100 [PATCH 05/21] perf callchain: Check return value of append_chain_children() Namhyung Kim <namhyung@kernel.org> - 2016-02-02 15:50 +0100 [PATCH 18/21] perf ui/gtk: Implement hierarchy output mode Namhyung Kim <namhyung@kernel.org> - 2016-02-02 15:50 +0100 [PATCH 17/21] perf hists browser: Align column header in hierarchy mode Namhyung Kim <namhyung@kernel.org> - 2016-02-02 15:50 +0100 [PATCH 21/21] perf top: Add --hierarchy option Namhyung Kim <namhyung@kernel.org> - 2016-02-02 15:50 +0100 [PATCH 02/21] perf callchain: Check return value of fill_node() Namhyung Kim <namhyung@kernel.org> - 2016-02-02 15:50 +0100
csiph-web