if (!(ka->sa.sa_flags & SA_NODEFER)) { spin_lock_irq(&tsk->sighand->siglock); sigorsets(&tsk->blocked, &tsk->blocked, &ka->sa.sa_mask); 
spin_lock_irq(&tsk->sighand->siglock); sigorsets(&tsk->blocked, &tsk->blocked, &ka->sa.sa_mask); if (!(ka->sa.sa_flags & SA_NODEFER)) 
handle_signal(unsigned long sig, siginfo_t *info, sigset_t *oldset,	      struct pt_regs * regs, int syscall){	struct thread_info *thread = current_thread_info();	struct task_struct *tsk = current;	struct k_sigaction *ka = &tsk->sighand->action[sig-1];	int usig = sig;	int ret;        /*         * If we were from a system call, check for system call restarting...         */        if (syscall) {                switch (regs->ARM_r0) {                case -ERESTART_RESTARTBLOCK:                        current_thread_info()->restart_block.fn =                                do_no_restart_syscall;                case -ERESTARTNOHAND:                        regs->ARM_r0 = -EINTR;                        break;                case -ERESTARTSYS:                        if (!(ka->sa.sa_flags & SA_RESTART)) {                                regs->ARM_r0 = -EINTR;                                break;                        }                        /* fallthrough */                case -ERESTARTNOINTR:                        restart_syscall(regs);                }        }	/*	 * translate the signal	 */	if (usig < 32 && thread->exec_domain && thread->exec_domain->signal_invmap)		usig = thread->exec_domain->signal_invmap[usig];	/*	 * Set up the stack frame	 */	if (ka->sa.sa_flags & SA_SIGINFO)		ret = setup_rt_frame(usig, ka, info, oldset, regs);	else		ret = setup_frame(usig, ka, oldset, regs);	/*	 * Check that the resulting registers are actually sane.	 */	ret |= !valid_user_regs(regs);	if (ret == 0) {		if (ka->sa.sa_flags & SA_ONESHOT)			ka->sa.sa_handler = SIG_DFL;		if (!(ka->sa.sa_flags & SA_NODEFER)) {			spin_lock_irq(&tsk->sighand->siglock);			sigorsets(&tsk->blocked, &tsk->blocked,				  &ka->sa.sa_mask);			sigaddset(&tsk->blocked, sig);			recalc_sigpending();			spin_unlock_irq(&tsk->sighand->siglock);		}		return;	}	force_sigsegv(sig, tsk);}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/69be8f189653cd81aae5a74e26615b12871bb72e/signal.c/clean/arch/arm26/kernel/signal.c