tools/perf/util/unwind-libdw.c | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-)
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>
---
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 bd027fdf6af1..6013335a8dae 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.50.1
On Mon, Apr 20, 2026 at 9:34 AM Kenta Akagi <k@mgml.me> wrote:
>
> 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.
I confirm map_symbol__exit is missing in 6.6.y:
https://web.git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/tree/tools/perf/util/map_symbol.h?h=linux-6.6.y
but present later:
https://git.kernel.org/pub/scm/linux/kernel/git/perf/perf-tools-next.git/commit/tools/perf/util/map_symbol.h?h=perf-tools-next&id=56e144fe98260a0f8a17326993ceb576ef859ed5
Reviewed-by: Ian Rogers <irogers@google.com>
Thanks,
Ian
> Signed-off-by: Kenta Akagi <k@mgml.me>
> ---
> 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 bd027fdf6af1..6013335a8dae 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.50.1
>
© 2016 - 2026 Red Hat, Inc.