]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
5.4-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 12 Feb 2022 10:49:59 +0000 (11:49 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 12 Feb 2022 10:49:59 +0000 (11:49 +0100)
added patches:
perf-probe-fix-ppc64-perf-probe-add-events-failed-case.patch

queue-5.4/perf-probe-fix-ppc64-perf-probe-add-events-failed-case.patch [new file with mode: 0644]
queue-5.4/series

diff --git a/queue-5.4/perf-probe-fix-ppc64-perf-probe-add-events-failed-case.patch b/queue-5.4/perf-probe-fix-ppc64-perf-probe-add-events-failed-case.patch
new file mode 100644 (file)
index 0000000..12615c1
--- /dev/null
@@ -0,0 +1,64 @@
+From 4624f199327a704dd1069aca1c3cadb8f2a28c6f Mon Sep 17 00:00:00 2001
+From: Zechuan Chen <chenzechuan1@huawei.com>
+Date: Tue, 28 Dec 2021 19:13:38 +0800
+Subject: perf probe: Fix ppc64 'perf probe add events failed' case
+
+From: Zechuan Chen <chenzechuan1@huawei.com>
+
+commit 4624f199327a704dd1069aca1c3cadb8f2a28c6f upstream.
+
+Because of commit bf794bf52a80c627 ("powerpc/kprobes: Fix kallsyms
+lookup across powerpc ABIv1 and ABIv2"), in ppc64 ABIv1, our perf
+command eliminates the need to use the prefix "." at the symbol name.
+
+But when the command "perf probe -a schedule" is executed on ppc64
+ABIv1, it obtains two symbol address information through /proc/kallsyms,
+for example:
+
+  cat /proc/kallsyms | grep -w schedule
+  c000000000657020 T .schedule
+  c000000000d4fdb8 D schedule
+
+The symbol "D schedule" is not a function symbol, and perf will print:
+"p:probe/schedule _text+13958584"Failed to write event: Invalid argument
+
+Therefore, when searching symbols from map and adding probe point for
+them, a symbol type check is added. If the type of symbol is not a
+function, skip it.
+
+Fixes: bf794bf52a80c627 ("powerpc/kprobes: Fix kallsyms lookup across powerpc ABIv1 and ABIv2")
+Signed-off-by: Zechuan Chen <chenzechuan1@huawei.com>
+Acked-by: Masami Hiramatsu <mhiramat@kernel.org>
+Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
+Cc: Ingo Molnar <mingo@redhat.com>
+Cc: Jianlin Lv <Jianlin.Lv@arm.com>
+Cc: Jin Yao <yao.jin@linux.intel.com>
+Cc: Jiri Olsa <jolsa@redhat.com>
+Cc: Mark Rutland <mark.rutland@arm.com>
+Cc: Michael Ellerman <mpe@ellerman.id.au>
+Cc: Namhyung Kim <namhyung@kernel.org>
+Cc: Naveen N. Rao <naveen.n.rao@linux.vnet.ibm.com>
+Cc: Peter Zijlstra <peterz@infradead.org>
+Cc: Ravi Bangoria <ravi.bangoria@linux.ibm.com>
+Cc: Yang Jihong <yangjihong1@huawei.com>
+Link: https://lore.kernel.org/r/20211228111338.218602-1-chenzechuan1@huawei.com
+Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
+[sudip: adjust context]
+Signed-off-by: Sudip Mukherjee <sudipm.mukherjee@gmail.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ tools/perf/util/probe-event.c |    3 +++
+ 1 file changed, 3 insertions(+)
+
+--- a/tools/perf/util/probe-event.c
++++ b/tools/perf/util/probe-event.c
+@@ -2954,6 +2954,9 @@ static int find_probe_trace_events_from_
+       for (j = 0; j < num_matched_functions; j++) {
+               sym = syms[j];
++              if (sym->type != STT_FUNC)
++                      continue;
++
+               tev = (*tevs) + ret;
+               tp = &tev->point;
+               if (ret == num_matched_functions) {
index 66874fd72b9f7a53ed243d71b926be927e1d9deb..8a5ad030e898102352a359f57061f9ee34ba8091 100644 (file)
@@ -31,3 +31,4 @@ nvme-tcp-fix-bogus-request-completion-when-failing-to-send-aer.patch
 acpi-iort-check-node-revision-for-pmcg-resources.patch
 pm-s2idle-acpi-fix-wakeup-interrupts-handling.patch
 net-bridge-fix-stale-eth-hdr-pointer-in-br_dev_xmit.patch
+perf-probe-fix-ppc64-perf-probe-add-events-failed-case.patch