From a5405ba8224e4a7c8b725b274295b9cfc1fd2446 Mon Sep 17 00:00:00 2001 From: Wei Li Date: Mon, 25 Nov 2019 10:58:11 +0800 Subject: [PATCH] perf tools: arm-spe: fix record hang after being terminated hulk inclusion category: bugfix bugzilla: 24005 CVE: NA ------------------------------------------- If the spe event is terminated, we don't enable it again here. Signed-off-by: Wei Li Reviewed-by: Xuefeng Wang Reviewed-by: Tan Xiaojun Signed-off-by: Yang Yingliang --- tools/perf/arch/arm64/util/arm-spe.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/tools/perf/arch/arm64/util/arm-spe.c b/tools/perf/arch/arm64/util/arm-spe.c index 5ccfce87e693..1419391e3a3e 100644 --- a/tools/perf/arch/arm64/util/arm-spe.c +++ b/tools/perf/arch/arm64/util/arm-spe.c @@ -162,9 +162,13 @@ static int arm_spe_read_finish(struct auxtrace_record *itr, int idx) struct perf_evsel *evsel; evlist__for_each_entry(sper->evlist, evsel) { - if (evsel->attr.type == sper->arm_spe_pmu->type) - return perf_evlist__enable_event_idx(sper->evlist, - evsel, idx); + if (evsel->attr.type == sper->arm_spe_pmu->type) { + if (evsel->terminated) + return 0; + else + return perf_evlist__enable_event_idx( + sper->evlist, evsel, idx); + } } return -EINVAL; } -- GitLab