|
@@ -311,10 +311,6 @@ long compat_arch_ptrace(struct task_struct *child, compat_long_t request,
|
|
|
|
|
|
long do_syscall_trace_enter(struct pt_regs *regs)
|
|
|
{
|
|
|
- /* Do the secure computing check first. */
|
|
|
- if (secure_computing(NULL) == -1)
|
|
|
- return -1;
|
|
|
-
|
|
|
if (test_thread_flag(TIF_SYSCALL_TRACE) &&
|
|
|
tracehook_report_syscall_entry(regs)) {
|
|
|
/*
|
|
@@ -325,6 +321,11 @@ long do_syscall_trace_enter(struct pt_regs *regs)
|
|
|
regs->gr[20] = -1UL;
|
|
|
goto out;
|
|
|
}
|
|
|
+
|
|
|
+ /* Do the secure computing check after ptrace. */
|
|
|
+ if (secure_computing(NULL) == -1)
|
|
|
+ return -1;
|
|
|
+
|
|
|
#ifdef CONFIG_HAVE_SYSCALL_TRACEPOINTS
|
|
|
if (unlikely(test_thread_flag(TIF_SYSCALL_TRACEPOINT)))
|
|
|
trace_sys_enter(regs, regs->gr[20]);
|