Re: [PATCH 6.6.y] Revert "perf unwind-libdw: Fix invalid reference counts"
From: Ian Rogers
Date: Tue Apr 21 2026 - 23:58:19 EST
On Mon, Apr 20, 2026 at 9:34 AM Kenta Akagi <k@xxxxxxx> 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@xxxxxxxxxx>
Thanks,
Ian
> Signed-off-by: Kenta Akagi <k@xxxxxxx>
> ---
> 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
>