perf pmu: Make id const and add missing free
authorIan Rogers <irogers@google.com>
Fri, 25 Aug 2023 02:40:00 +0000 (19:40 -0700)
committerArnaldo Carvalho de Melo <acme@redhat.com>
Fri, 25 Aug 2023 13:23:34 +0000 (10:23 -0300)
The struct pmu id is initialized from pmu_id that is read into allocated
memory from a file, as such it needs free-ing in pmu__delete().

Make the id value const so that we can remove casts in tests.

Signed-off-by: Ian Rogers <irogers@google.com>
Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Cc: Athira Rajeev <atrajeev@linux.vnet.ibm.com>
Cc: Huacai Chen <chenhuacai@kernel.org>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: James Clark <james.clark@arm.com>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: John Garry <john.g.garry@oracle.com>
Cc: K Prateek Nayak <kprateek.nayak@amd.com>
Cc: Kajol Jain <kjain@linux.ibm.com>
Cc: Kan Liang <kan.liang@linux.intel.com>
Cc: Leo Yan <leo.yan@linaro.org>
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: Mike Leach <mike.leach@linaro.org>
Cc: Ming Wang <wangming01@loongson.cn>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Ravi Bangoria <ravi.bangoria@amd.com>
Cc: Sean Christopherson <seanjc@google.com>
Cc: Suzuki Poulouse <suzuki.poulose@arm.com>
Cc: Wei Li <liwei391@huawei.com>
Cc: Will Deacon <will@kernel.org>
Cc: linux-arm-kernel@lists.infradead.org
Link: https://lore.kernel.org/r/20230825024002.801955-5-irogers@google.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
tools/perf/tests/pmu-events.c
tools/perf/util/pmu.c
tools/perf/util/pmu.h

index d92de3d..ce4da9b 100644 (file)
@@ -684,7 +684,7 @@ static struct perf_pmu_test_pmu test_pmus[] = {
                .pmu = {
                        .name = "uncore_sys_ddr_pmu0",
                        .is_uncore = 1,
-                       .id = (char *)"v8",
+                       .id = "v8",
                },
                .aliases = {
                        &sys_ddr_pmu_write_cycles,
@@ -694,7 +694,7 @@ static struct perf_pmu_test_pmu test_pmus[] = {
                .pmu = {
                        .name = "uncore_sys_ccn_pmu4",
                        .is_uncore = 1,
-                       .id = (char *)"0x01",
+                       .id = "0x01",
                },
                .aliases = {
                        &sys_ccn_pmu_read_cycles,
index eb42f98..b92dc72 100644 (file)
@@ -2056,6 +2056,7 @@ void perf_pmu__delete(struct perf_pmu *pmu)
        zfree(&pmu->default_config);
        zfree(&pmu->name);
        zfree(&pmu->alias_name);
+       zfree(&pmu->id);
        free(pmu);
 }
 
index e90169a..73965f2 100644 (file)
@@ -49,7 +49,7 @@ struct perf_pmu {
         * @id: Optional PMU identifier read from
         * <sysfs>/bus/event_source/devices/<name>/identifier.
         */
-       char *id;
+       const char *id;
        /**
         * @type: Perf event attributed type value, read from
         * <sysfs>/bus/event_source/devices/<name>/type.