diff options
Diffstat (limited to 'tools/perf/util/session.c')
-rw-r--r-- | tools/perf/util/session.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/tools/perf/util/session.c b/tools/perf/util/session.c index b723f211881c..558bcf996949 100644 --- a/tools/perf/util/session.c +++ b/tools/perf/util/session.c | |||
@@ -247,9 +247,14 @@ int perf_session__resolve_callchain(struct perf_session *self, | |||
247 | callchain_cursor_reset(&self->callchain_cursor); | 247 | callchain_cursor_reset(&self->callchain_cursor); |
248 | 248 | ||
249 | for (i = 0; i < chain->nr; i++) { | 249 | for (i = 0; i < chain->nr; i++) { |
250 | u64 ip = chain->ips[i]; | 250 | u64 ip; |
251 | struct addr_location al; | 251 | struct addr_location al; |
252 | 252 | ||
253 | if (callchain_param.order == ORDER_CALLEE) | ||
254 | ip = chain->ips[i]; | ||
255 | else | ||
256 | ip = chain->ips[chain->nr - i - 1]; | ||
257 | |||
253 | if (ip >= PERF_CONTEXT_MAX) { | 258 | if (ip >= PERF_CONTEXT_MAX) { |
254 | switch (ip) { | 259 | switch (ip) { |
255 | case PERF_CONTEXT_HV: | 260 | case PERF_CONTEXT_HV: |