if (try_to_freeze(0)) 
if (try_to_freeze()) 
static int do_signal(sigset_t *oldset, struct pt_regs *regs, int syscall){	struct k_sigaction ka;	siginfo_t info;	int signr;	/*	 * We want the common case to go fast, which	 * is why we may in certain cases get here from	 * kernel mode. Just return without doing anything	 * if so.	 */	if (!user_mode(regs))		return 0;	if (try_to_freeze(0))		goto no_signal;	if (current->ptrace & PT_SINGLESTEP)		ptrace_cancel_bpt(current);	signr = get_signal_to_deliver(&info, &ka, regs, NULL);	if (signr > 0) {		handle_signal(signr, &ka, &info, oldset, regs, syscall);		if (current->ptrace & PT_SINGLESTEP)			ptrace_set_bpt(current);		return 1;	} no_signal:	/*	 * No signal to deliver to the process - restart the syscall.	 */	if (syscall) {		if (regs->ARM_r0 == -ERESTART_RESTARTBLOCK) {			if (thumb_mode(regs)) {				regs->ARM_r7 = __NR_restart_syscall;				regs->ARM_pc -= 2;			} else {				u32 __user *usp;				regs->ARM_sp -= 12;				usp = (u32 __user *)regs->ARM_sp;				put_user(regs->ARM_pc, &usp[0]);				/* swi __NR_restart_syscall */				put_user(0xef000000 | __NR_restart_syscall, &usp[1]);				/* ldr	pc, [sp], #12 */				put_user(0xe49df00c, &usp[2]);				flush_icache_range((unsigned long)usp,						   (unsigned long)(usp + 3));				regs->ARM_pc = regs->ARM_sp + 4;			}		}		if (regs->ARM_r0 == -ERESTARTNOHAND ||		    regs->ARM_r0 == -ERESTARTSYS ||		    regs->ARM_r0 == -ERESTARTNOINTR) {			restart_syscall(regs);		}	}	if (current->ptrace & PT_SINGLESTEP)		ptrace_set_bpt(current);	return 0;}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/bdb94f3a78366d46bc73c8c8d8fe0dfb9522ff36/signal.c/clean/arch/arm/kernel/signal.c