diff options
| -rw-r--r-- | arch/powerpc/include/asm/thread_info.h | 7 | ||||
| -rw-r--r-- | arch/powerpc/kernel/ptrace.c | 5 | 
2 files changed, 10 insertions, 2 deletions
diff --git a/arch/powerpc/include/asm/thread_info.h b/arch/powerpc/include/asm/thread_info.h index 8ceea14d6fe..ba7b1973866 100644 --- a/arch/powerpc/include/asm/thread_info.h +++ b/arch/powerpc/include/asm/thread_info.h @@ -97,7 +97,7 @@ static inline struct thread_info *current_thread_info(void)  #define TIF_PERFMON_CTXSW	6	/* perfmon needs ctxsw calls */  #define TIF_SYSCALL_AUDIT	7	/* syscall auditing active */  #define TIF_SINGLESTEP		8	/* singlestepping active */ -#define TIF_MEMDIE		9	/* is terminating due to OOM killer */ +#define TIF_NOHZ		9	/* in adaptive nohz mode */  #define TIF_SECCOMP		10	/* secure computing */  #define TIF_RESTOREALL		11	/* Restore all regs (implies NOERROR) */  #define TIF_NOERROR		12	/* Force successful syscall return */ @@ -106,6 +106,7 @@ static inline struct thread_info *current_thread_info(void)  #define TIF_SYSCALL_TRACEPOINT	15	/* syscall tracepoint instrumentation */  #define TIF_EMULATE_STACK_STORE	16	/* Is an instruction emulation  						for stack store? */ +#define TIF_MEMDIE		17	/* is terminating due to OOM killer */  /* as above, but as bit values */  #define _TIF_SYSCALL_TRACE	(1<<TIF_SYSCALL_TRACE) @@ -124,8 +125,10 @@ static inline struct thread_info *current_thread_info(void)  #define _TIF_UPROBE		(1<<TIF_UPROBE)  #define _TIF_SYSCALL_TRACEPOINT	(1<<TIF_SYSCALL_TRACEPOINT)  #define _TIF_EMULATE_STACK_STORE	(1<<TIF_EMULATE_STACK_STORE) +#define _TIF_NOHZ		(1<<TIF_NOHZ)  #define _TIF_SYSCALL_T_OR_A	(_TIF_SYSCALL_TRACE | _TIF_SYSCALL_AUDIT | \ -				 _TIF_SECCOMP | _TIF_SYSCALL_TRACEPOINT) +				 _TIF_SECCOMP | _TIF_SYSCALL_TRACEPOINT | \ +				 _TIF_NOHZ)  #define _TIF_USER_WORK_MASK	(_TIF_SIGPENDING | _TIF_NEED_RESCHED | \  				 _TIF_NOTIFY_RESUME | _TIF_UPROBE) diff --git a/arch/powerpc/kernel/ptrace.c b/arch/powerpc/kernel/ptrace.c index 3b14d320e69..98c2fc19871 100644 --- a/arch/powerpc/kernel/ptrace.c +++ b/arch/powerpc/kernel/ptrace.c @@ -32,6 +32,7 @@  #include <trace/syscall.h>  #include <linux/hw_breakpoint.h>  #include <linux/perf_event.h> +#include <linux/context_tracking.h>  #include <asm/uaccess.h>  #include <asm/page.h> @@ -1788,6 +1789,8 @@ long do_syscall_trace_enter(struct pt_regs *regs)  {  	long ret = 0; +	user_exit(); +  	secure_computing_strict(regs->gpr[0]);  	if (test_thread_flag(TIF_SYSCALL_TRACE) && @@ -1832,4 +1835,6 @@ void do_syscall_trace_leave(struct pt_regs *regs)  	step = test_thread_flag(TIF_SINGLESTEP);  	if (step || test_thread_flag(TIF_SYSCALL_TRACE))  		tracehook_report_syscall_exit(regs, step); + +	user_enter();  }  |