#define instruction_pointer(regs) ((regs)->cp0_epc)
 #define profile_pc(regs) instruction_pointer(regs)
 
-extern asmlinkage void syscall_trace_enter(struct pt_regs *regs);
+extern asmlinkage long syscall_trace_enter(struct pt_regs *regs);
 extern asmlinkage void syscall_trace_leave(struct pt_regs *regs);
 
 extern void die(const char *, struct pt_regs *) __noreturn;
 
  * Notification of system call entry/exit
  * - triggered by current->work.syscall_trace
  */
-asmlinkage void syscall_trace_enter(struct pt_regs *regs)
+asmlinkage long syscall_trace_enter(struct pt_regs *regs)
 {
+       long syscall = regs->regs[2];
        long ret = 0;
        user_exit();
 
-       /* do the secure computing check first */
-       secure_computing_strict(regs->regs[2]);
+       if (secure_computing(syscall) == -1)
+               return -1;
 
        if (test_thread_flag(TIF_SYSCALL_TRACE) &&
            tracehook_report_syscall_entry(regs))
                trace_sys_enter(regs, regs->regs[2]);
 
        audit_syscall_entry(syscall_get_arch(current, regs),
-                           regs->regs[2],
+                           syscall,
                            regs->regs[4], regs->regs[5],
                            regs->regs[6], regs->regs[7]);
+       return syscall;
 }
 
 /*