perf map: Add missing dso__put() in map__new()
authorIan Rogers <irogers@google.com>
Mon, 6 May 2024 18:01:01 +0000 (11:01 -0700)
committerArnaldo Carvalho de Melo <acme@redhat.com>
Mon, 6 May 2024 18:36:51 +0000 (15:36 -0300)
A dso__put() is needed for the dsos__find() when the map is created and
a buildid is sought.

Fixes: f649ed80f3cabbf1 ("perf dsos: Tidy reference counting and locking")
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: Changbin Du <changbin.du@huawei.com>
Cc: Ian Rogers <irogers@google.com>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Kan Liang <kan.liang@linux.intel.com>
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Tiezhu Yang <yangtiezhu@loongson.cn>
Link: https://lore.kernel.org/r/20240506180104.485674-2-irogers@google.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
tools/perf/util/map.c

index 117c4bb78b35ba330ad906dc6fc4f01b467a63fe..e1d14936a60da3e8e998a319968192c348418d3b 100644 (file)
@@ -200,6 +200,7 @@ struct map *map__new(struct machine *machine, u64 start, u64 len,
                                dso__set_build_id(dso, dso__bid(header_bid_dso));
                                dso__set_header_build_id(dso, 1);
                        }
+                       dso__put(header_bid_dso);
                }
                dso__put(dso);
        }