[PATCH 6.6 126/166] Revert "perf unwind-libdw: Fix invalid reference counts"

Greg Kroah-Hartman
2026-04-24T13:40:19Z

From: Kenta Akagi <k@mgml.me>

This reverts commit eddddf4ed7f69697cb54e714e773f764c8d3b67e.

Upstream commit f815fc0c66e7 ("perf unwind-libdw: Fix invalid reference counts"),
was backported to v6.6.128 as eddddf4ed7f6.

However, this commit depends on map_symbol__exit, which was introduced
in v6.7 as commit 56e144fe9826 ("perf mem_info: Add and use
map_symbol__exit and addr_map_symbol__exit") and is absent in v6.6.y.
This results in a build failure.

This is a revert of a backport, so there is no upstream commit.

Signed-off-by: Kenta Akagi <k@mgml.me>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
tools/perf/util/unwind-libdw.c | 7 ++-----
1 file changed, 2 insertions(+), 5 deletions(-)

diff --git a/tools/perf/util/unwind-libdw.c b/tools/perf/util/unwind-libdw.c
index bd027fdf6af17..6013335a8daea 100644
--- a/tools/perf/util/unwind-libdw.c
+++ b/tools/perf/util/unwind-libdw.c
@@ -133,8 +133,8 @@ static int entry(u64 ip, struct unwind_info *ui)
}

e->ip = ip;
- e->ms.maps = maps__get(al.maps);
- e->ms.map = map__get(al.map);
+ e->ms.maps = al.maps;
+ e->ms.map = al.map;
e->ms.sym = al.sym;

pr_debug("unwind: %s:ip = 0x%" PRIx64 " (0x%" PRIx64 ")\n",
@@ -319,9 +319,6 @@ int unwind__get_entries(unwind_entry_cb_t cb, void *arg,
if (err)
pr_debug("unwind: failed with '%s'\n", dwfl_errmsg(-1));

- for (i = 0; i < ui->idx; i++)
- map_symbol__exit(&ui->entries[i].ms);
-
dwfl_end(ui->dwfl);
free(ui);
return 0;
--
2.53.0