]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
5.10-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 3 May 2022 14:21:59 +0000 (16:21 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 3 May 2022 14:21:59 +0000 (16:21 +0200)
added patches:
perf-symbol-remove-arch__symbols__fixup_end.patch

queue-5.10/perf-symbol-remove-arch__symbols__fixup_end.patch [new file with mode: 0644]
queue-5.10/series

diff --git a/queue-5.10/perf-symbol-remove-arch__symbols__fixup_end.patch b/queue-5.10/perf-symbol-remove-arch__symbols__fixup_end.patch
new file mode 100644 (file)
index 0000000..2560019
--- /dev/null
@@ -0,0 +1,126 @@
+From a5d20d42a2f2dc2b2f9e9361912062732414090d Mon Sep 17 00:00:00 2001
+From: Namhyung Kim <namhyung@kernel.org>
+Date: Fri, 15 Apr 2022 17:40:48 -0700
+Subject: perf symbol: Remove arch__symbols__fixup_end()
+
+From: Namhyung Kim <namhyung@kernel.org>
+
+commit a5d20d42a2f2dc2b2f9e9361912062732414090d upstream.
+
+Now the generic code can handle kallsyms fixup properly so no need to
+keep the arch-functions anymore.
+
+Fixes: 3cf6a32f3f2a4594 ("perf symbols: Fix symbol size calculation condition")
+Signed-off-by: Namhyung Kim <namhyung@kernel.org>
+Acked-by: Ian Rogers <irogers@google.com>
+Cc: Heiko Carstens <hca@linux.ibm.com>
+Cc: Ingo Molnar <mingo@kernel.org>
+Cc: Jiri Olsa <jolsa@kernel.org>
+Cc: John Garry <john.garry@huawei.com>
+Cc: Leo Yan <leo.yan@linaro.org>
+Cc: Mark Rutland <mark.rutland@arm.com>
+Cc: Masami Hiramatsu <mhiramat@kernel.org>
+Cc: Mathieu Poirier <mathieu.poirier@linaro.org>
+Cc: Michael Ellerman <mpe@ellerman.id.au>
+Cc: Michael Petlan <mpetlan@redhat.com>
+Cc: Peter Zijlstra <peterz@infradead.org>
+Cc: Song Liu <songliubraving@fb.com>
+Cc: Will Deacon <will@kernel.org>
+Cc: linux-s390@vger.kernel.org
+Cc: linuxppc-dev@lists.ozlabs.org
+Link: https://lore.kernel.org/r/20220416004048.1514900-4-namhyung@kernel.org
+Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ tools/perf/arch/arm64/util/Build     |    1 -
+ tools/perf/arch/arm64/util/machine.c |   27 ---------------------------
+ tools/perf/arch/s390/util/machine.c  |   16 ----------------
+ tools/perf/util/symbol.c             |    5 -----
+ tools/perf/util/symbol.h             |    1 -
+ 5 files changed, 50 deletions(-)
+ delete mode 100644 tools/perf/arch/powerpc/util/machine.c
+
+--- a/tools/perf/arch/arm64/util/Build
++++ b/tools/perf/arch/arm64/util/Build
+@@ -1,5 +1,4 @@
+ perf-y += header.o
+-perf-y += machine.o
+ perf-y += perf_regs.o
+ perf-y += tsc.o
+ perf-$(CONFIG_DWARF)     += dwarf-regs.o
+--- a/tools/perf/arch/arm64/util/machine.c
++++ /dev/null
+@@ -1,27 +0,0 @@
+-// SPDX-License-Identifier: GPL-2.0
+-
+-#include <stdio.h>
+-#include <string.h>
+-#include "debug.h"
+-#include "symbol.h"
+-
+-/* On arm64, kernel text segment start at high memory address,
+- * for example 0xffff 0000 8xxx xxxx. Modules start at a low memory
+- * address, like 0xffff 0000 00ax xxxx. When only samll amount of
+- * memory is used by modules, gap between end of module's text segment
+- * and start of kernel text segment may be reach 2G.
+- * Therefore do not fill this gap and do not assign it to the kernel dso map.
+- */
+-
+-#define SYMBOL_LIMIT (1 << 12) /* 4K */
+-
+-void arch__symbols__fixup_end(struct symbol *p, struct symbol *c)
+-{
+-      if ((strchr(p->name, '[') && strchr(c->name, '[') == NULL) ||
+-                      (strchr(p->name, '[') == NULL && strchr(c->name, '[')))
+-              /* Limit range of last symbol in module and kernel */
+-              p->end += SYMBOL_LIMIT;
+-      else
+-              p->end = c->start;
+-      pr_debug4("%s sym:%s end:%#lx\n", __func__, p->name, p->end);
+-}
+--- a/tools/perf/arch/s390/util/machine.c
++++ b/tools/perf/arch/s390/util/machine.c
+@@ -34,19 +34,3 @@ int arch__fix_module_text_start(u64 *sta
+       return 0;
+ }
+-
+-/* On s390 kernel text segment start is located at very low memory addresses,
+- * for example 0x10000. Modules are located at very high memory addresses,
+- * for example 0x3ff xxxx xxxx. The gap between end of kernel text segment
+- * and beginning of first module's text segment is very big.
+- * Therefore do not fill this gap and do not assign it to the kernel dso map.
+- */
+-void arch__symbols__fixup_end(struct symbol *p, struct symbol *c)
+-{
+-      if (strchr(p->name, '[') == NULL && strchr(c->name, '['))
+-              /* Last kernel symbol mapped to end of page */
+-              p->end = roundup(p->end, page_size);
+-      else
+-              p->end = c->start;
+-      pr_debug4("%s sym:%s end:%#lx\n", __func__, p->name, p->end);
+-}
+--- a/tools/perf/util/symbol.c
++++ b/tools/perf/util/symbol.c
+@@ -101,11 +101,6 @@ static int prefix_underscores_count(cons
+       return tail - str;
+ }
+-void __weak arch__symbols__fixup_end(struct symbol *p, struct symbol *c)
+-{
+-      p->end = c->start;
+-}
+-
+ const char * __weak arch__normalize_symbol_name(const char *name)
+ {
+       return name;
+--- a/tools/perf/util/symbol.h
++++ b/tools/perf/util/symbol.h
+@@ -230,7 +230,6 @@ const char *arch__normalize_symbol_name(
+ #define SYMBOL_A 0
+ #define SYMBOL_B 1
+-void arch__symbols__fixup_end(struct symbol *p, struct symbol *c);
+ int arch__compare_symbol_names(const char *namea, const char *nameb);
+ int arch__compare_symbol_names_n(const char *namea, const char *nameb,
+                                unsigned int n);
index 00638a24c07404e5e560408de264885c446e93f1..a7dbf2ea46d8cb73c07f506f8a6eaccd5234085e 100644 (file)
@@ -126,3 +126,4 @@ tty-n_gsm-fix-wrong-command-frame-length-field-encoding.patch
 tty-n_gsm-fix-reset-fifo-race-condition.patch
 tty-n_gsm-fix-incorrect-ua-handling.patch
 tty-n_gsm-fix-software-flow-control-handling.patch
+perf-symbol-remove-arch__symbols__fixup_end.patch