Allow architectures to implement handling of kprobes on function
tracer call sites on their own, without depending on common code.

This patch removes the kprobes check if a kprobe is being placed
on a function tracer call site and therefore gives full responsibility
of handling this correctly to the architecture.

Signed-off-by: Heiko Carstens <[email protected]>
---
 arch/Kconfig     | 8 ++++++++
 kernel/kprobes.c | 3 ++-
 2 files changed, 10 insertions(+), 1 deletion(-)

diff --git a/arch/Kconfig b/arch/Kconfig
index 05d7a8a458d5..e1a8e0edf03f 100644
--- a/arch/Kconfig
+++ b/arch/Kconfig
@@ -85,6 +85,14 @@ config KPROBES_ON_FTRACE
         passing of pt_regs to function tracing, then kprobes can
         optimize on top of function tracing.
 
+config ARCH_HANDLES_KPROBES_ON_FTRACE
+       def_bool n
+       help
+        If an architecture can handle kprobes on function tracer call
+        sites on own, then this option should be selected. This option
+        removes the check which otherwise prevents to set kprobes on
+        function tracer call sites.
+
 config UPROBES
        def_bool n
        select PERCPU_RWSEM
diff --git a/kernel/kprobes.c b/kernel/kprobes.c
index 3995f546d0f3..4cc48aa67635 100644
--- a/kernel/kprobes.c
+++ b/kernel/kprobes.c
@@ -1428,7 +1428,8 @@ static int check_kprobe_address_safe(struct kprobe *p,
                        return -EILSEQ;
                p->flags |= KPROBE_FLAG_FTRACE;
 #else  /* !CONFIG_KPROBES_ON_FTRACE */
-               return -EINVAL;
+               if (!IS_ENABLED(CONFIG_ARCH_HANDLES_KPROBES_ON_FTRACE))
+                       return -EINVAL;
 #endif
        }
 
-- 
1.8.5.5

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to