lkml.org 
[lkml]   [2017]   [Oct]   [3]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[tip:x86/urgent] kprobes/x86: Remove IRQ disabling from jprobe handlers
    Commit-ID:  b664d57f39d01e775204d4f1a7e2f8bda77bc549
    Gitweb: https://git.kernel.org/tip/b664d57f39d01e775204d4f1a7e2f8bda77bc549
    Author: Masami Hiramatsu <mhiramat@kernel.org>
    AuthorDate: Tue, 3 Oct 2017 16:18:02 +0900
    Committer: Ingo Molnar <mingo@kernel.org>
    CommitDate: Tue, 3 Oct 2017 19:11:48 +0200

    kprobes/x86: Remove IRQ disabling from jprobe handlers

    Jprobes actually don't need to disable IRQs while calling
    handlers, because of how we specify the kernel interface in
    Documentation/kprobes.txt:

    -----
    Probe handlers are run with preemption disabled. Depending on the
    architecture and optimization state, handlers may also run with
    interrupts disabled (e.g., kretprobe handlers and optimized kprobe
    handlers run without interrupt disabled on x86/x86-64).
    -----

    So let's remove IRQ disabling from jprobes too.

    Signed-off-by: Masami Hiramatsu <mhiramat@kernel.org>
    Cc: Alexei Starovoitov <ast@fb.com>
    Cc: Alexei Starovoitov <ast@kernel.org>
    Cc: Ananth N Mavinakayanahalli <ananth@linux.vnet.ibm.com>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Paul E . McKenney <paulmck@linux.vnet.ibm.com>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Steven Rostedt <rostedt@goodmis.org>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Link: http://lkml.kernel.org/r/150701508194.32266.14458959863314097305.stgit@devbox
    Signed-off-by: Ingo Molnar <mingo@kernel.org>
    ---
    arch/x86/kernel/kprobes/core.c | 2 --
    1 file changed, 2 deletions(-)

    diff --git a/arch/x86/kernel/kprobes/core.c b/arch/x86/kernel/kprobes/core.c
    index f015371..0742491 100644
    --- a/arch/x86/kernel/kprobes/core.c
    +++ b/arch/x86/kernel/kprobes/core.c
    @@ -1080,8 +1080,6 @@ int setjmp_pre_handler(struct kprobe *p, struct pt_regs *regs)
    * raw stack chunk with redzones:
    */
    __memcpy(kcb->jprobes_stack, (kprobe_opcode_t *)addr, MIN_STACK_SIZE(addr));
    - regs->flags &= ~X86_EFLAGS_IF;
    - trace_hardirqs_off();
    regs->ip = (unsigned long)(jp->entry);

    /*
    \
     
     \ /
      Last update: 2017-10-03 19:47    [W:8.418 / U:0.012 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site