]> www.infradead.org Git - users/hch/misc.git/commitdiff
powerpc/fprobe: fix updated fprobe for function-graph tracer
authorHari Bathini <hbathini@linux.ibm.com>
Tue, 16 Sep 2025 04:40:35 +0000 (10:10 +0530)
committerMadhavan Srinivasan <maddy@linux.ibm.com>
Tue, 16 Sep 2025 10:43:00 +0000 (16:13 +0530)
Since commit 4346ba160409 ("fprobe: Rewrite fprobe on function-graph
tracer"), FPROBE depends on HAVE_FUNCTION_GRAPH_FREGS. With previous
patch adding HAVE_FUNCTION_GRAPH_FREGS for powerpc, FPROBE can be
enabled on powerpc. But with the commit b5fa903b7f7c ("fprobe: Add
fprobe_header encoding feature"), asm/fprobe.h header is needed to
define arch dependent encode/decode macros. The fprobe header MSB
pattern on powerpc is not 0xf. So, define FPROBE_HEADER_MSB_PATTERN
expected on powerpc.

Also, commit 762abbc0d09f ("fprobe: Use ftrace_regs in fprobe exit
handler") introduced HAVE_FTRACE_REGS_HAVING_PT_REGS for archs that
have pt_regs in ftrace_regs. Advertise that on powerpc to reuse
common definitions like ftrace_partial_regs().

Acked-by: Masami Hiramatsu (Google) <mhiramat@kernel.org>
Tested-by: Venkat Rao Bagalkote <venkat88@linux.ibm.com>
Signed-off-by: Hari Bathini <hbathini@linux.ibm.com>
Signed-off-by: Aditya Bodkhe <aditya.b1@linux.ibm.com>
Signed-off-by: Madhavan Srinivasan <maddy@linux.ibm.com>
Link: https://patch.msgid.link/20250916044035.29033-2-adityab1@linux.ibm.com
arch/powerpc/Kconfig
arch/powerpc/include/asm/fprobe.h [new file with mode: 0644]

index 449404d3932bfea2766497da769f14a8cf7e1dea..325c1171894db963d8c807466ec17adbee5c0cb7 100644 (file)
@@ -243,6 +243,7 @@ config PPC
        select HAVE_EFFICIENT_UNALIGNED_ACCESS
        select HAVE_GUP_FAST
        select HAVE_FTRACE_GRAPH_FUNC
+       select HAVE_FTRACE_REGS_HAVING_PT_REGS
        select HAVE_FUNCTION_ARG_ACCESS_API
        select HAVE_FUNCTION_DESCRIPTORS        if PPC64_ELF_ABI_V1
        select HAVE_FUNCTION_ERROR_INJECTION
diff --git a/arch/powerpc/include/asm/fprobe.h b/arch/powerpc/include/asm/fprobe.h
new file mode 100644 (file)
index 0000000..d64bc28
--- /dev/null
@@ -0,0 +1,12 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+#ifndef _ASM_PPC_FPROBE_H
+#define _ASM_PPC_FPROBE_H
+
+#include <asm-generic/fprobe.h>
+
+#ifdef CONFIG_64BIT
+#undef FPROBE_HEADER_MSB_PATTERN
+#define FPROBE_HEADER_MSB_PATTERN      (PAGE_OFFSET & ~FPROBE_HEADER_MSB_MASK)
+#endif
+
+#endif /* _ASM_PPC_FPROBE_H */