lkml.org 
[lkml]   [2019]   [Apr]   [26]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH v5 20/23] x86/kprobes: Use vmalloc special flag
    Date
    From: Rick Edgecombe <rick.p.edgecombe@intel.com>

    Use new flag VM_FLUSH_RESET_PERMS for handling freeing of special
    permissioned memory in vmalloc and remove places where memory was set NX
    and RW before freeing which is no longer needed.

    Cc: Masami Hiramatsu <mhiramat@kernel.org>
    Signed-off-by: Rick Edgecombe <rick.p.edgecombe@intel.com>
    ---
    arch/x86/kernel/kprobes/core.c | 7 +------
    1 file changed, 1 insertion(+), 6 deletions(-)

    diff --git a/arch/x86/kernel/kprobes/core.c b/arch/x86/kernel/kprobes/core.c
    index 1591852d3ac4..136695e4434a 100644
    --- a/arch/x86/kernel/kprobes/core.c
    +++ b/arch/x86/kernel/kprobes/core.c
    @@ -434,6 +434,7 @@ void *alloc_insn_page(void)
    if (!page)
    return NULL;

    + set_vm_flush_reset_perms(page);
    /*
    * First make the page read-only, and only then make it executable to
    * prevent it from being W+X in between.
    @@ -452,12 +453,6 @@ void *alloc_insn_page(void)
    /* Recover page to RW mode before releasing it */
    void free_insn_page(void *page)
    {
    - /*
    - * First make the page non-executable, and only then make it writable to
    - * prevent it from being W+X in between.
    - */
    - set_memory_nx((unsigned long)page, 1);
    - set_memory_rw((unsigned long)page, 1);
    module_memfree(page);
    }

    --
    2.17.1
    \
     
     \ /
      Last update: 2019-04-26 09:33    [W:4.118 / U:0.088 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site