[lkml]   [2017]   [Aug]   [18]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
Subject[PATCH -tip v3 0/2] kprobes/x86: Another way to make insn buffer RO and cleanup

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.



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 <>

 \ /
  Last update: 2017-08-18 10:24    [W:0.062 / U:3.768 seconds]
©2003-2018 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site