diff options
author | Ingo Molnar <mingo@kernel.org> | 2015-12-08 00:05:12 -0500 |
---|---|---|
committer | Ingo Molnar <mingo@kernel.org> | 2015-12-08 00:05:12 -0500 |
commit | 03fba21adb190fc0aec9c2556639c1c1b195aee7 (patch) | |
tree | 8606b835ba22e99bd981ef1c56329cacd4b2134f /tools | |
parent | 4e93ad601a4308d4a67673c81556580817d56940 (diff) | |
parent | 4938cf0c7a62025bbfbf3db7bcdcc2c33312bedb (diff) |
Merge tag 'perf-urgent-for-mingo' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/urgent
Pull perf/urgent fixes from Arnaldo Carvalho de Melo:
User visible fixes:
- Fix showing the running kernel build id using: (Michael Petlan)
$ perf buildid-list -k
03c2a89c595616188f02f0282762a75b47069bc0
- hists browser (report, top) symbol filter segfault fixes (Wang Nan)
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'tools')
-rw-r--r-- | tools/perf/builtin-buildid-list.c | 2 | ||||
-rw-r--r-- | tools/perf/ui/browsers/hists.c | 8 | ||||
-rw-r--r-- | tools/perf/util/build-id.c | 2 |
3 files changed, 10 insertions, 2 deletions
diff --git a/tools/perf/builtin-buildid-list.c b/tools/perf/builtin-buildid-list.c index 918b4de29de4..6419f57b0850 100644 --- a/tools/perf/builtin-buildid-list.c +++ b/tools/perf/builtin-buildid-list.c | |||
@@ -110,7 +110,7 @@ int cmd_buildid_list(int argc, const char **argv, | |||
110 | setup_pager(); | 110 | setup_pager(); |
111 | 111 | ||
112 | if (show_kernel) | 112 | if (show_kernel) |
113 | return sysfs__fprintf_build_id(stdout); | 113 | return !(sysfs__fprintf_build_id(stdout) > 0); |
114 | 114 | ||
115 | return perf_session__list_build_ids(force, with_hits); | 115 | return perf_session__list_build_ids(force, with_hits); |
116 | } | 116 | } |
diff --git a/tools/perf/ui/browsers/hists.c b/tools/perf/ui/browsers/hists.c index fa9eb92c9e24..81def6c3f24b 100644 --- a/tools/perf/ui/browsers/hists.c +++ b/tools/perf/ui/browsers/hists.c | |||
@@ -298,6 +298,9 @@ static bool hist_browser__toggle_fold(struct hist_browser *browser) | |||
298 | struct callchain_list *cl = container_of(ms, struct callchain_list, ms); | 298 | struct callchain_list *cl = container_of(ms, struct callchain_list, ms); |
299 | bool has_children; | 299 | bool has_children; |
300 | 300 | ||
301 | if (!he || !ms) | ||
302 | return false; | ||
303 | |||
301 | if (ms == &he->ms) | 304 | if (ms == &he->ms) |
302 | has_children = hist_entry__toggle_fold(he); | 305 | has_children = hist_entry__toggle_fold(he); |
303 | else | 306 | else |
@@ -928,6 +931,8 @@ static unsigned int hist_browser__refresh(struct ui_browser *browser) | |||
928 | } | 931 | } |
929 | 932 | ||
930 | ui_browser__hists_init_top(browser); | 933 | ui_browser__hists_init_top(browser); |
934 | hb->he_selection = NULL; | ||
935 | hb->selection = NULL; | ||
931 | 936 | ||
932 | for (nd = browser->top; nd; nd = rb_next(nd)) { | 937 | for (nd = browser->top; nd; nd = rb_next(nd)) { |
933 | struct hist_entry *h = rb_entry(nd, struct hist_entry, rb_node); | 938 | struct hist_entry *h = rb_entry(nd, struct hist_entry, rb_node); |
@@ -1033,6 +1038,9 @@ static void ui_browser__hists_seek(struct ui_browser *browser, | |||
1033 | * and stop when we printed enough lines to fill the screen. | 1038 | * and stop when we printed enough lines to fill the screen. |
1034 | */ | 1039 | */ |
1035 | do_offset: | 1040 | do_offset: |
1041 | if (!nd) | ||
1042 | return; | ||
1043 | |||
1036 | if (offset > 0) { | 1044 | if (offset > 0) { |
1037 | do { | 1045 | do { |
1038 | h = rb_entry(nd, struct hist_entry, rb_node); | 1046 | h = rb_entry(nd, struct hist_entry, rb_node); |
diff --git a/tools/perf/util/build-id.c b/tools/perf/util/build-id.c index 217b5a60e2ab..6a7e273a514a 100644 --- a/tools/perf/util/build-id.c +++ b/tools/perf/util/build-id.c | |||
@@ -91,7 +91,7 @@ int build_id__sprintf(const u8 *build_id, int len, char *bf) | |||
91 | bid += 2; | 91 | bid += 2; |
92 | } | 92 | } |
93 | 93 | ||
94 | return raw - build_id; | 94 | return (bid - bf) + 1; |
95 | } | 95 | } |
96 | 96 | ||
97 | int sysfs__sprintf_build_id(const char *root_dir, char *sbuild_id) | 97 | int sysfs__sprintf_build_id(const char *root_dir, char *sbuild_id) |