]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
7.1-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 22 Jul 2026 12:49:01 +0000 (14:49 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 22 Jul 2026 12:49:01 +0000 (14:49 +0200)
added patches:
perf-srcline-introduce-inline_node__clear_frames.patch

queue-7.1/perf-libdw-fix-libdw-api-contract-violations-and-mem.patch
queue-7.1/perf-srcline-introduce-inline_node__clear_frames.patch [new file with mode: 0644]
queue-7.1/series

index 736ee8032ec58439dbe546b9c823b7e34c6b037f..aed75b11c1d66efb5e1c48a3e500894589b0ea73 100644 (file)
@@ -36,14 +36,12 @@ Cc: Zecheng Li <zli94@ncsu.edu>
 Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
 Signed-off-by: Sasha Levin <sashal@kernel.org>
 ---
- tools/perf/util/libdw.c | 49 ++++++++++++++++++++++++++++++++++++-----
+ tools/perf/util/libdw.c |   49 ++++++++++++++++++++++++++++++++++++++++++------
  1 file changed, 43 insertions(+), 6 deletions(-)
 
-diff --git a/tools/perf/util/libdw.c b/tools/perf/util/libdw.c
-index 21697788410308..15bf646d104f5a 100644
 --- a/tools/perf/util/libdw.c
 +++ b/tools/perf/util/libdw.c
-@@ -60,7 +60,10 @@ struct Dwfl *dso__libdw_dwfl(struct dso *dso)
+@@ -60,7 +60,10 @@ struct Dwfl *dso__libdw_dwfl(struct dso
                return NULL;
        }
  
@@ -77,7 +75,7 @@ index 21697788410308..15bf646d104f5a 100644
  
        /* Assign caller information to the parent. */
        if (call_fname)
-@@ -103,12 +107,27 @@ static int libdw_a2l_cb(Dwarf_Die *die, void *_args)
+@@ -103,12 +107,27 @@ static int libdw_a2l_cb(Dwarf_Die *die,
  
        /* Add this symbol to the chain as the leaf. */
        if (!args->leaf_srcline_used) {
@@ -107,7 +105,7 @@ index 21697788410308..15bf646d104f5a 100644
  }
  
  int libdw__addr2line(u64 addr, char **file, unsigned int *line_nr,
-@@ -162,11 +181,29 @@ int libdw__addr2line(u64 addr, char **file, unsigned int *line_nr,
+@@ -162,11 +181,29 @@ int libdw__addr2line(u64 addr, char **fi
                        .leaf_srcline = srcline_from_fileline(src ?: "<unknown>", lineno),
                };
  
@@ -138,6 +136,3 @@ index 21697788410308..15bf646d104f5a 100644
        }
        return 1;
  }
--- 
-2.53.0
-
diff --git a/queue-7.1/perf-srcline-introduce-inline_node__clear_frames.patch b/queue-7.1/perf-srcline-introduce-inline_node__clear_frames.patch
new file mode 100644 (file)
index 0000000..c7367ac
--- /dev/null
@@ -0,0 +1,67 @@
+From 674dea094ef6594ea1aa0efb074a4646a81350b2 Mon Sep 17 00:00:00 2001
+From: Ian Rogers <irogers@google.com>
+Date: Mon, 4 May 2026 01:12:21 -0700
+Subject: perf srcline: Introduce inline_node__clear_frames()
+
+From: Ian Rogers <irogers@google.com>
+
+commit 674dea094ef6594ea1aa0efb074a4646a81350b2 upstream.
+
+Introduce inline_node__clear_frames() to clean up partial allocations.
+This is a prerequisite for error handling in libdw inline unwinding.
+
+Signed-off-by: Ian Rogers <irogers@google.com>
+Cc: Adrian Hunter <adrian.hunter@intel.com>
+Cc: Ingo Molnar <mingo@redhat.com>
+Cc: James Clark <james.clark@linaro.org>
+Cc: Jiri Olsa <jolsa@kernel.org>
+Cc: Masami Hiramatsu <mhiramat@kernel.org>
+Cc: Namhyung Kim <namhyung@kernel.org>
+Cc: Peter Zijlstra <peterz@infradead.org>
+Cc: Zecheng Li <zli94@ncsu.edu>
+Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ tools/perf/util/srcline.c |    9 ++++++++-
+ tools/perf/util/srcline.h |    1 +
+ 2 files changed, 9 insertions(+), 1 deletion(-)
+
+--- a/tools/perf/util/srcline.c
++++ b/tools/perf/util/srcline.c
+@@ -429,10 +429,13 @@ struct inline_node *dso__parse_addr_inli
+       return addr2inlines(dso_name, addr, dso, sym);
+ }
+-void inline_node__delete(struct inline_node *node)
++void inline_node__clear_frames(struct inline_node *node)
+ {
+       struct inline_list *ilist, *tmp;
++      if (node == NULL)
++              return;
++
+       list_for_each_entry_safe(ilist, tmp, &node->val, list) {
+               list_del_init(&ilist->list);
+               zfree_srcline(&ilist->srcline);
+@@ -441,7 +444,11 @@ void inline_node__delete(struct inline_n
+                       symbol__delete(ilist->symbol);
+               free(ilist);
+       }
++}
++void inline_node__delete(struct inline_node *node)
++{
++      inline_node__clear_frames(node);
+       free(node);
+ }
+--- a/tools/perf/util/srcline.h
++++ b/tools/perf/util/srcline.h
+@@ -47,6 +47,7 @@ struct inline_node *dso__parse_addr_inli
+                                           struct symbol *sym);
+ /* free resources associated to the inline node list */
+ void inline_node__delete(struct inline_node *node);
++void inline_node__clear_frames(struct inline_node *node);
+ /* insert the inline node list into the DSO, which will take ownership */
+ void inlines__tree_insert(struct rb_root_cached *tree,
index 1660c73ee777ed13e3d9a1dbd777c200cfe9bb06..ec91ab0e7b33f1655f5da5ba8c1d17f86b0fef19 100644 (file)
@@ -834,6 +834,7 @@ staging-rtl8723bs-fix-stainfo-check-in-rtw_aes_decry.patch
 staging-nvec-fix-use-after-free-in-nvec_rx_completed.patch
 perf-dwarf-aux-fix-libdw-segmentation-fault-in-cu_wa.patch
 perf-dwarf-aux-fix-libdw-api-contract-violations.patch
+perf-srcline-introduce-inline_node__clear_frames.patch
 perf-libdw-fix-libdw-api-contract-violations-and-mem.patch
 perf-probe-finder-fix-libdw-api-contract-violations.patch
 perf-annotate-data-fix-libdw-api-contract-violations.patch