The seccomp check has to happen when entering the syscall and not when
exiting it or regs->gpr[0] contains garabge during signal handling in
ppc64_rt_sigreturn (this actually might be a bug too, but an orthogonal
one, since we really have to run the check before invoking the syscall and
not after it).
Signed-off-by: Andrea Arcangeli <andrea@cpushare.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
 
 void do_syscall_trace_enter(struct pt_regs *regs)
 {
+       secure_computing(regs->gpr[0]);
+
        if (test_thread_flag(TIF_SYSCALL_TRACE)
            && (current->ptrace & PT_PTRACED))
                do_syscall_trace();
 
 void do_syscall_trace_leave(struct pt_regs *regs)
 {
-       secure_computing(regs->gpr[0]);
-
        if (unlikely(current->audit_context))
                audit_syscall_exit(current, 
                                   (regs->ccr&0x1000)?AUDITSC_FAILURE:AUDITSC_SUCCESS,