else { int res = UPT_SYSCALL_RET(regs); audit_syscall_exit(current, AUDITSC_RESULT(res), res); } 
else audit_syscall_exit(current, AUDITSC_RESULT(UPT_SYSCALL_RET(regs)), UPT_SYSCALL_RET(regs)); 
void syscall_trace(union uml_pt_regs *regs, int entryexit){	int is_singlestep = (current->ptrace & PT_DTRACE) && entryexit;	int tracesysgood;	if (unlikely(current->audit_context)) {		if (!entryexit)			audit_syscall_entry(current,                                            HOST_AUDIT_ARCH,					    UPT_SYSCALL_NR(regs),					    UPT_SYSCALL_ARG1(regs),					    UPT_SYSCALL_ARG2(regs),					    UPT_SYSCALL_ARG3(regs),					    UPT_SYSCALL_ARG4(regs));		else {                        int res = UPT_SYSCALL_RET(regs);			audit_syscall_exit(current, AUDITSC_RESULT(res),                                           res);                }	}	/* Fake a debug trap */	if (is_singlestep)		send_sigtrap(current, regs, 0);	if (!test_thread_flag(TIF_SYSCALL_TRACE))		return;	if (!(current->ptrace & PT_PTRACED))		return;	/* the 0x80 provides a way for the tracing parent to distinguish	   between a syscall stop and SIGTRAP delivery */	tracesysgood = (current->ptrace & PT_TRACESYSGOOD);	ptrace_notify(SIGTRAP | (tracesysgood ? 0x80 : 0));	if (entryexit) /* force do_signal() --> is_syscall() */		set_thread_flag(TIF_SIGPENDING);	/* this isn't the same as continuing with a signal, but it will do	 * for normal use.  strace only continues with a signal if the	 * stopping signal is not SIGTRAP.  -brl	 */	if (current->exit_code) {		send_sig(current->exit_code, current, 1);		current->exit_code = 0;	}}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/b9e0d0696c9e86d4e40b23039feefb8c377cb524/ptrace.c/buggy/arch/um/kernel/ptrace.c