mm/migrate: correct failure handling if !hugepage_migration_support()
[firefly-linux-kernel-4.4.55.git] / tools / perf / builtin-top.c
index 569dd87690efe80386f3c7b67e6e9acb9793d972..76cd510d34d023bf3c580ec2b3e2e217d8831cba 100644 (file)
@@ -743,15 +743,10 @@ static void perf_event__process_sample(struct perf_tool *tool,
        if (al.sym == NULL || !al.sym->ignore) {
                struct hist_entry *he;
 
-               if ((sort__has_parent || symbol_conf.use_callchain) &&
-                   sample->callchain) {
-                       err = machine__resolve_callchain(machine, evsel,
-                                                        al.thread, sample,
-                                                        &parent, &al,
-                                                        top->max_stack);
-                       if (err)
-                               return;
-               }
+               err = sample__resolve_callchain(sample, &parent, evsel, &al,
+                                               top->max_stack);
+               if (err)
+                       return;
 
                he = perf_evsel__add_hist_entry(evsel, &al, sample);
                if (he == NULL) {
@@ -759,12 +754,9 @@ static void perf_event__process_sample(struct perf_tool *tool,
                        return;
                }
 
-               if (symbol_conf.use_callchain) {
-                       err = callchain_append(he->callchain, &callchain_cursor,
-                                              sample->period);
-                       if (err)
-                               return;
-               }
+               err = hist_entry__append_callchain(he, sample);
+               if (err)
+                       return;
 
                if (sort__has_sym)
                        perf_top__record_precise_ip(top, he, evsel->idx, ip);