All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 1/2] kprobes: Allow architectures to override optinsn page allocation
@ 2021-05-12 14:29 ` Christophe Leroy
  0 siblings, 0 replies; 20+ messages in thread
From: Christophe Leroy @ 2021-05-12 14:29 UTC (permalink / raw)
  To: Benjamin Herrenschmidt, Paul Mackerras, Michael Ellerman,
	naveen.n.rao, anil.s.keshavamurthy, davem, mhiramat
  Cc: linux-kernel, linuxppc-dev, clang-built-linux

Some architectures like powerpc require a non standard
allocation of optinsn page, because module pages are
too far from the kernel for direct branches.

Define weak alloc_optinsn_page() and free_optinsn_page(), that
fall back on alloc_insn_page() and free_insn_page() when not
overriden by the architecture.

Suggested-by: Masami Hiramatsu <mhiramat@kernel.org>
Signed-off-by: Christophe Leroy <christophe.leroy@csgroup.eu>
---
 kernel/kprobes.c | 14 ++++++++++++--
 1 file changed, 12 insertions(+), 2 deletions(-)

diff --git a/kernel/kprobes.c b/kernel/kprobes.c
index 745f08fdd7a6..8c0a6fdef771 100644
--- a/kernel/kprobes.c
+++ b/kernel/kprobes.c
@@ -321,11 +321,21 @@ int kprobe_cache_get_kallsym(struct kprobe_insn_cache *c, unsigned int *symnum,
 }
 
 #ifdef CONFIG_OPTPROBES
+void __weak *alloc_optinsn_page(void)
+{
+	return alloc_insn_page();
+}
+
+void __weak free_optinsn_page(void *page)
+{
+	free_insn_page(page);
+}
+
 /* For optimized_kprobe buffer */
 struct kprobe_insn_cache kprobe_optinsn_slots = {
 	.mutex = __MUTEX_INITIALIZER(kprobe_optinsn_slots.mutex),
-	.alloc = alloc_insn_page,
-	.free = free_insn_page,
+	.alloc = alloc_optinsn_page,
+	.free = free_optinsn_page,
 	.sym = KPROBE_OPTINSN_PAGE_SYM,
 	.pages = LIST_HEAD_INIT(kprobe_optinsn_slots.pages),
 	/* .insn_size is initialized later */
-- 
2.25.0


^ permalink raw reply related	[flat|nested] 20+ messages in thread

end of thread, other threads:[~2021-05-13  0:36 UTC | newest]

Thread overview: 20+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-05-12 14:29 [PATCH 1/2] kprobes: Allow architectures to override optinsn page allocation Christophe Leroy
2021-05-12 14:29 ` Christophe Leroy
2021-05-12 14:29 ` [PATCH 2/2] powerpc/kprobes: Replace ppc_optinsn by common optinsn Christophe Leroy
2021-05-12 14:29   ` Christophe Leroy
2021-05-12 17:29   ` kernel test robot
2021-05-12 17:29     ` kernel test robot
2021-05-12 17:29     ` kernel test robot
2021-05-12 20:11   ` kernel test robot
2021-05-12 20:11     ` kernel test robot
2021-05-12 20:11     ` kernel test robot
2021-05-12 23:44   ` Masami Hiramatsu
2021-05-12 23:44     ` Masami Hiramatsu
2021-05-12 19:04 ` [PATCH 1/2] kprobes: Allow architectures to override optinsn page allocation kernel test robot
2021-05-12 19:04   ` kernel test robot
2021-05-12 19:04   ` kernel test robot
2021-05-13  0:33   ` Masami Hiramatsu
2021-05-13  0:33     ` Masami Hiramatsu
2021-05-13  0:33     ` Masami Hiramatsu
2021-05-12 23:43 ` Masami Hiramatsu
2021-05-12 23:43   ` Masami Hiramatsu

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.