[tip:x86/urgent] kprobes/x86: Remove IRQ disabling from jprobe handlers

From: tip-bot for Masami Hiramatsu
Date: Tue Oct 03 2017 - 13:46:49 EST


Commit-ID: b664d57f39d01e775204d4f1a7e2f8bda77bc549
Gitweb: https://git.kernel.org/tip/b664d57f39d01e775204d4f1a7e2f8bda77bc549
Author: Masami Hiramatsu <mhiramat@xxxxxxxxxx>
AuthorDate: Tue, 3 Oct 2017 16:18:02 +0900
Committer: Ingo Molnar <mingo@xxxxxxxxxx>
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@xxxxxxxxxx>
Cc: Alexei Starovoitov <ast@xxxxxx>
Cc: Alexei Starovoitov <ast@xxxxxxxxxx>
Cc: Ananth N Mavinakayanahalli <ananth@xxxxxxxxxxxxxxxxxx>
Cc: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Cc: Paul E . McKenney <paulmck@xxxxxxxxxxxxxxxxxx>
Cc: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
Cc: Steven Rostedt <rostedt@xxxxxxxxxxx>
Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Link: 150701508194.32266.14458959863314097305.stgit@devbox">http://lkml.kernel.org/r/150701508194.32266.14458959863314097305.stgit@devbox
Signed-off-by: Ingo Molnar <mingo@xxxxxxxxxx>
---
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);

/*