coresight: perf: Release Coresight path when alloc trace id failed
authorRuidong Tian <tianruidong@linux.alibaba.com>
Tue, 25 Apr 2023 03:24:16 +0000 (11:24 +0800)
committerSuzuki K Poulose <suzuki.poulose@arm.com>
Thu, 11 May 2023 10:18:21 +0000 (11:18 +0100)
Error handler for etm_setup_aux can not release coresight path because
cpu mask was cleared when coresight_trace_id_get_cpu_id failed.

Call coresight_release_path function explicitly when alloc trace id filed.

Fixes: 4ff1fdb4125c4 ("coresight: perf: traceid: Add perf ID allocation and notifiers")
Signed-off-by: Ruidong Tian <tianruidong@linux.alibaba.com>
Signed-off-by: Suzuki K Poulose <suzuki.poulose@arm.com>
Link: https://lore.kernel.org/r/20230425032416.125542-1-tianruidong@linux.alibaba.com
drivers/hwtracing/coresight/coresight-etm-perf.c

index 711f451..89e8ed2 100644 (file)
@@ -402,6 +402,7 @@ static void *etm_setup_aux(struct perf_event *event, void **pages,
                trace_id = coresight_trace_id_get_cpu_id(cpu);
                if (!IS_VALID_CS_TRACE_ID(trace_id)) {
                        cpumask_clear_cpu(cpu, mask);
+                       coresight_release_path(path);
                        continue;
                }