Hi, This series modifies how to handle RO insn buffer and cleans up addressof operators.
The 1st patch changes the RO insn buffer handling: instead of using set_memory_ro/rw to modify the buffer, it prepares new instructions in another buffer and write it with text_poke() as suggested by Ingo Molnar (Thanks!). Since the text_poke() is safely modifying code by mapping alias pages, it can write RO pages. This also override alloc_insn_page() so that it returns ROX page directly. The 2nd one is not changed. It is a cleanup patch to remove addressof operators ("&") since it is meaningless anymore. V3 has just a following update: - [1/2] Not to just add set_memory_ro(), introduce new patch to change the way to handle RO pages. Thanks, --- Masami Hiramatsu (2): kprobes/x86: Make insn buffer always ROX and use text_poke kprobes/x86: Remove addressof operators arch/x86/include/asm/kprobes.h | 4 +- arch/x86/kernel/kprobes/common.h | 6 ++- arch/x86/kernel/kprobes/core.c | 61 +++++++++++++++++++++------------ arch/x86/kernel/kprobes/opt.c | 71 +++++++++++++++++++++----------------- kernel/kprobes.c | 2 + 5 files changed, 86 insertions(+), 58 deletions(-) -- Masami Hiramatsu <mhira...@kernel.org>