- Firstly, the function auxtrace_record__init() will be invoked only
  once, the variable "arm_spe_pmus" will not be used afterwards, thus
  we don't need to check "arm_spe_pmus" is NULL or not;
- Another reason is, even though SPE is micro-architecture dependent,
  but so far it only supports "statistical-profiling-extension-v1" and
  we have no chance to use multiple SPE's PMU events in Perf command.

So remove the useless check code to make it clear.

Signed-off-by: Wei Li <liwei...@huawei.com>
---
 tools/perf/arch/arm/util/auxtrace.c | 9 ++++-----
 1 file changed, 4 insertions(+), 5 deletions(-)

diff --git a/tools/perf/arch/arm/util/auxtrace.c 
b/tools/perf/arch/arm/util/auxtrace.c
index 28a5d0c18b1d..b187bddbd01a 100644
--- a/tools/perf/arch/arm/util/auxtrace.c
+++ b/tools/perf/arch/arm/util/auxtrace.c
@@ -57,17 +57,15 @@ struct auxtrace_record
        struct evsel *evsel;
        bool found_etm = false;
        struct perf_pmu *found_spe = NULL;
-       static struct perf_pmu **arm_spe_pmus = NULL;
-       static int nr_spes = 0;
+       struct perf_pmu **arm_spe_pmus = NULL;
+       int nr_spes = 0;
        int i = 0;
 
        if (!evlist)
                return NULL;
 
        cs_etm_pmu = perf_pmu__find(CORESIGHT_ETM_PMU_NAME);
-
-       if (!arm_spe_pmus)
-               arm_spe_pmus = find_all_arm_spe_pmus(&nr_spes, err);
+       arm_spe_pmus = find_all_arm_spe_pmus(&nr_spes, err);
 
        evlist__for_each_entry(evlist, evsel) {
                if (cs_etm_pmu &&
@@ -84,6 +82,7 @@ struct auxtrace_record
                        }
                }
        }
+       free(arm_spe_pmus);
 
        if (found_etm && found_spe) {
                pr_err("Concurrent ARM Coresight ETM and SPE operation not 
currently supported\n");
-- 
2.17.1

Reply via email to