perf list: Fix JSON segfault by setting the used skip_duplicate_pmus callback
authorIan Rogers <irogers@google.com>
Wed, 29 Nov 2023 21:34:26 +0000 (13:34 -0800)
committerNamhyung Kim <namhyung@kernel.org>
Tue, 5 Dec 2023 19:16:00 +0000 (11:16 -0800)
Json output didn't set the skip_duplicate_pmus callback yielding a
segfault.

Fixes: cd4e1efbbc40 ("perf pmus: Skip duplicate PMUs and don't print list suffix by default")
Signed-off-by: Ian Rogers <irogers@google.com>
Cc: James Clark <james.clark@arm.com>
Cc: Kan Liang <kan.liang@linux.intel.com>
Cc: Athira Rajeev <atrajeev@linux.vnet.ibm.com>
Cc: stable@vger.kernel.org
Link: https://lore.kernel.org/r/20231129213428.2227448-2-irogers@google.com
[namhyung: updated subject line according to Arnaldo]
Signed-off-by: Namhyung Kim <namhyung@kernel.org>
tools/perf/builtin-list.c

index a343823c8ddfc9e0023b55b2c648db99d8de7ba7..61c2c96cc0701b886d7c1daecd92cfa25581d1f7 100644 (file)
@@ -434,6 +434,11 @@ static void json_print_metric(void *ps __maybe_unused, const char *group,
        strbuf_release(&buf);
 }
 
+static bool json_skip_duplicate_pmus(void *ps __maybe_unused)
+{
+       return false;
+}
+
 static bool default_skip_duplicate_pmus(void *ps)
 {
        struct print_state *print_state = ps;
@@ -503,6 +508,7 @@ int cmd_list(int argc, const char **argv)
                        .print_end = json_print_end,
                        .print_event = json_print_event,
                        .print_metric = json_print_metric,
+                       .skip_duplicate_pmus = json_skip_duplicate_pmus,
                };
                ps = &json_ps;
        } else {