recalc_sigpending(); spin_unlock_irq(&current->sighand->siglock); } 
recalc_sigpending(); spin_unlock_irq(&current->sighand->siglock); 
int do_signal(struct pt_regs *regs, sigset_t *oldset){	siginfo_t info;	int signr;	struct k_sigaction ka;	if (!oldset)		oldset = &current->blocked;	signr = get_signal_to_deliver(&info, &ka, regs, NULL);	/* Are we from a system call? */	if (regs->syscall >= 0) {		/* If so, check system call restarting.. */		switch (regs->areg[2]) {			case ERESTARTNOHAND:			case ERESTART_RESTARTBLOCK:				regs->areg[2] = -EINTR;				break;			case ERESTARTSYS:				if (!(ka.sa.sa_flags & SA_RESTART)) {					regs->areg[2] = -EINTR;					break;				}			/* fallthrough */			case ERESTARTNOINTR:				regs->areg[2] = regs->syscall;				regs->pc -= 3;		}	}	if (signr == 0)		return 0;		/* no signals delivered */	/* Whee!  Actually deliver the signal.  */	/* Set up the stack frame */	if (ka.sa.sa_flags & SA_SIGINFO)		setup_rt_frame(signr, &ka, &info, oldset, regs);	else		setup_frame(signr, &ka, oldset, regs);	if (ka.sa.sa_flags & SA_ONESHOT)		ka.sa.sa_handler = SIG_DFL;	if (!(ka.sa.sa_flags & SA_NODEFER)) {		spin_lock_irq(&current->sighand->siglock);		sigorsets(&current->blocked, &current->blocked, &ka.sa.sa_mask);		sigaddset(&current->blocked, signr);		recalc_sigpending();		spin_unlock_irq(&current->sighand->siglock);	}	return 1;}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/69be8f189653cd81aae5a74e26615b12871bb72e/signal.c/clean/arch/xtensa/kernel/signal.c