diff options
author | Chris Metcalf <cmetcalf@ezchip.com> | 2015-12-23 23:13:04 +0100 |
---|---|---|
committer | Chris Metcalf <cmetcalf@ezchip.com> | 2016-01-18 20:49:30 +0100 |
commit | 1bb50cad45f4a3fb9a339006d76efc50f70eed5b (patch) | |
tree | 91e00be5d5852acdb7c5c9ba9707b9f7926e6bc6 /arch/tile/kernel/ptrace.c | |
parent | tile: fix bug in setting PT_FLAGS_DISABLE_IRQ on kernel entry (diff) | |
download | linux-1bb50cad45f4a3fb9a339006d76efc50f70eed5b.tar.xz linux-1bb50cad45f4a3fb9a339006d76efc50f70eed5b.zip |
arch/tile: move user_exit() to early kernel entry sequence
This ensures that we always notify context tracking that we
have exited from user space no matter how we enter the kernel.
It is similar to how arm64 handles context tracking, for example.
This allows the removal of all the exception_enter() calls that
were added in commit 49e4e15619cd ("tile: support CONTEXT_TRACKING and
thus NOHZ_FULL").
Signed-off-by: Chris Metcalf <cmetcalf@ezchip.com>
Diffstat (limited to 'arch/tile/kernel/ptrace.c')
-rw-r--r-- | arch/tile/kernel/ptrace.c | 15 |
1 files changed, 0 insertions, 15 deletions
diff --git a/arch/tile/kernel/ptrace.c b/arch/tile/kernel/ptrace.c index bdc126faf741..54e7b723db99 100644 --- a/arch/tile/kernel/ptrace.c +++ b/arch/tile/kernel/ptrace.c @@ -255,13 +255,6 @@ int do_syscall_trace_enter(struct pt_regs *regs) { u32 work = ACCESS_ONCE(current_thread_info()->flags); - /* - * If TIF_NOHZ is set, we are required to call user_exit() before - * doing anything that could touch RCU. - */ - if (work & _TIF_NOHZ) - user_exit(); - if (secure_computing() == -1) return -1; @@ -281,12 +274,6 @@ void do_syscall_trace_exit(struct pt_regs *regs) long errno; /* - * We may come here right after calling schedule_user() - * in which case we can be in RCU user mode. - */ - user_exit(); - - /* * The standard tile calling convention returns the value (or negative * errno) in r0, and zero (or positive errno) in r1. * It saves a couple of cycles on the hot path to do this work in @@ -322,7 +309,5 @@ void send_sigtrap(struct task_struct *tsk, struct pt_regs *regs) /* Handle synthetic interrupt delivered only by the simulator. */ void __kprobes do_breakpoint(struct pt_regs* regs, int fault_num) { - enum ctx_state prev_state = exception_enter(); send_sigtrap(current, regs); - exception_exit(prev_state); } |