mirror of
https://github.com/torvalds/linux
synced 2024-11-05 18:23:50 +00:00
x86/entry: Remove do_notify_resume(), syscall_trace_leave(), and their TIF masks
They are no longer used. Good riddance! Deleting the TIF_ macros is really nice. It was never clear why there were so many variants. Signed-off-by: Andy Lutomirski <luto@kernel.org> Cc: Borislav Petkov <bp@alien8.de> Cc: Brian Gerst <brgerst@gmail.com> Cc: Denys Vlasenko <dvlasenk@redhat.com> Cc: Eric Paris <eparis@parisplace.org> Cc: Linus Torvalds <torvalds@linux-foundation.org> Cc: Oleg Nesterov <oleg@redhat.com> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Thomas Gleixner <tglx@linutronix.de> Link: http://lkml.kernel.org/r/22c61682f446628573dde0f1d573ab821677e06da.1438378274.git.luto@kernel.org Signed-off-by: Ingo Molnar <mingo@kernel.org>
This commit is contained in:
parent
5d73fc7099
commit
88cd622f92
4 changed files with 0 additions and 75 deletions
|
@ -207,37 +207,6 @@ long syscall_trace_enter(struct pt_regs *regs)
|
||||||
return syscall_trace_enter_phase2(regs, arch, phase1_result);
|
return syscall_trace_enter_phase2(regs, arch, phase1_result);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Deprecated. */
|
|
||||||
void syscall_trace_leave(struct pt_regs *regs)
|
|
||||||
{
|
|
||||||
bool step;
|
|
||||||
|
|
||||||
/*
|
|
||||||
* We may come here right after calling schedule_user()
|
|
||||||
* or do_notify_resume(), in which case we can be in RCU
|
|
||||||
* user mode.
|
|
||||||
*/
|
|
||||||
user_exit();
|
|
||||||
|
|
||||||
audit_syscall_exit(regs);
|
|
||||||
|
|
||||||
if (unlikely(test_thread_flag(TIF_SYSCALL_TRACEPOINT)))
|
|
||||||
trace_sys_exit(regs, regs->ax);
|
|
||||||
|
|
||||||
/*
|
|
||||||
* If TIF_SYSCALL_EMU is set, we only get here because of
|
|
||||||
* TIF_SINGLESTEP (i.e. this is PTRACE_SYSEMU_SINGLESTEP).
|
|
||||||
* We already reported this syscall instruction in
|
|
||||||
* syscall_trace_enter().
|
|
||||||
*/
|
|
||||||
step = unlikely(test_thread_flag(TIF_SINGLESTEP)) &&
|
|
||||||
!test_thread_flag(TIF_SYSCALL_EMU);
|
|
||||||
if (step || test_thread_flag(TIF_SYSCALL_TRACE))
|
|
||||||
tracehook_report_syscall_exit(regs, step);
|
|
||||||
|
|
||||||
user_enter();
|
|
||||||
}
|
|
||||||
|
|
||||||
static struct thread_info *pt_regs_to_thread_info(struct pt_regs *regs)
|
static struct thread_info *pt_regs_to_thread_info(struct pt_regs *regs)
|
||||||
{
|
{
|
||||||
unsigned long top_of_stack =
|
unsigned long top_of_stack =
|
||||||
|
@ -347,29 +316,3 @@ __visible void syscall_return_slowpath(struct pt_regs *regs)
|
||||||
local_irq_disable();
|
local_irq_disable();
|
||||||
prepare_exit_to_usermode(regs);
|
prepare_exit_to_usermode(regs);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
* Deprecated notification of userspace execution resumption
|
|
||||||
* - triggered by the TIF_WORK_MASK flags
|
|
||||||
*/
|
|
||||||
__visible void
|
|
||||||
do_notify_resume(struct pt_regs *regs, void *unused, __u32 thread_info_flags)
|
|
||||||
{
|
|
||||||
user_exit();
|
|
||||||
|
|
||||||
if (thread_info_flags & _TIF_UPROBE)
|
|
||||||
uprobe_notify_resume(regs);
|
|
||||||
|
|
||||||
/* deal with pending signal delivery */
|
|
||||||
if (thread_info_flags & _TIF_SIGPENDING)
|
|
||||||
do_signal(regs);
|
|
||||||
|
|
||||||
if (thread_info_flags & _TIF_NOTIFY_RESUME) {
|
|
||||||
clear_thread_flag(TIF_NOTIFY_RESUME);
|
|
||||||
tracehook_notify_resume(regs);
|
|
||||||
}
|
|
||||||
if (thread_info_flags & _TIF_USER_RETURN_NOTIFY)
|
|
||||||
fire_user_return_notifiers();
|
|
||||||
|
|
||||||
user_enter();
|
|
||||||
}
|
|
||||||
|
|
|
@ -88,7 +88,6 @@ extern long syscall_trace_enter_phase2(struct pt_regs *, u32 arch,
|
||||||
unsigned long phase1_result);
|
unsigned long phase1_result);
|
||||||
|
|
||||||
extern long syscall_trace_enter(struct pt_regs *);
|
extern long syscall_trace_enter(struct pt_regs *);
|
||||||
extern void syscall_trace_leave(struct pt_regs *);
|
|
||||||
|
|
||||||
static inline unsigned long regs_return_value(struct pt_regs *regs)
|
static inline unsigned long regs_return_value(struct pt_regs *regs)
|
||||||
{
|
{
|
||||||
|
|
|
@ -31,7 +31,6 @@ typedef sigset_t compat_sigset_t;
|
||||||
#include <uapi/asm/signal.h>
|
#include <uapi/asm/signal.h>
|
||||||
#ifndef __ASSEMBLY__
|
#ifndef __ASSEMBLY__
|
||||||
extern void do_signal(struct pt_regs *regs);
|
extern void do_signal(struct pt_regs *regs);
|
||||||
extern void do_notify_resume(struct pt_regs *, void *, __u32);
|
|
||||||
|
|
||||||
#define __ARCH_HAS_SA_RESTORER
|
#define __ARCH_HAS_SA_RESTORER
|
||||||
|
|
||||||
|
|
|
@ -143,27 +143,11 @@ struct thread_info {
|
||||||
_TIF_SECCOMP | _TIF_SINGLESTEP | _TIF_SYSCALL_TRACEPOINT | \
|
_TIF_SECCOMP | _TIF_SINGLESTEP | _TIF_SYSCALL_TRACEPOINT | \
|
||||||
_TIF_NOHZ)
|
_TIF_NOHZ)
|
||||||
|
|
||||||
/* work to do in syscall_trace_leave() */
|
|
||||||
#define _TIF_WORK_SYSCALL_EXIT \
|
|
||||||
(_TIF_SYSCALL_TRACE | _TIF_SYSCALL_AUDIT | _TIF_SINGLESTEP | \
|
|
||||||
_TIF_SYSCALL_TRACEPOINT | _TIF_NOHZ)
|
|
||||||
|
|
||||||
/* work to do on interrupt/exception return */
|
|
||||||
#define _TIF_WORK_MASK \
|
|
||||||
(0x0000FFFF & \
|
|
||||||
~(_TIF_SYSCALL_TRACE|_TIF_SYSCALL_AUDIT| \
|
|
||||||
_TIF_SINGLESTEP|_TIF_SECCOMP|_TIF_SYSCALL_EMU))
|
|
||||||
|
|
||||||
/* work to do on any return to user space */
|
/* work to do on any return to user space */
|
||||||
#define _TIF_ALLWORK_MASK \
|
#define _TIF_ALLWORK_MASK \
|
||||||
((0x0000FFFF & ~_TIF_SECCOMP) | _TIF_SYSCALL_TRACEPOINT | \
|
((0x0000FFFF & ~_TIF_SECCOMP) | _TIF_SYSCALL_TRACEPOINT | \
|
||||||
_TIF_NOHZ)
|
_TIF_NOHZ)
|
||||||
|
|
||||||
/* Only used for 64 bit */
|
|
||||||
#define _TIF_DO_NOTIFY_MASK \
|
|
||||||
(_TIF_SIGPENDING | _TIF_NOTIFY_RESUME | \
|
|
||||||
_TIF_USER_RETURN_NOTIFY | _TIF_UPROBE)
|
|
||||||
|
|
||||||
/* flags to check in __switch_to() */
|
/* flags to check in __switch_to() */
|
||||||
#define _TIF_WORK_CTXSW \
|
#define _TIF_WORK_CTXSW \
|
||||||
(_TIF_IO_BITMAP|_TIF_NOTSC|_TIF_BLOCKSTEP)
|
(_TIF_IO_BITMAP|_TIF_NOTSC|_TIF_BLOCKSTEP)
|
||||||
|
|
Loading…
Reference in a new issue