if (memcpy(&set.sig, &sset->sig, sigsetsize)) return -EFAULT; 
memcpy(&set.sig, &sset->sig, sigsetsize); 
__ia32_rt_sigsuspend (compat_sigset_t *sset, unsigned int sigsetsize, struct sigscratch *scr){	extern long ia64_do_signal (sigset_t *oldset, struct sigscratch *scr, long in_syscall);	sigset_t oldset, set;	scr->scratch_unat = 0;	/* avoid leaking kernel bits to user level */	memset(&set, 0, sizeof(&set));	if (memcpy(&set.sig, &sset->sig, sigsetsize))		return -EFAULT;	sigdelsetmask(&set, ~_BLOCKABLE);	spin_lock_irq(&current->sighand->siglock);	{		oldset = current->blocked;		current->blocked = set;		recalc_sigpending();	}	spin_unlock_irq(&current->sighand->siglock);	/*	 * The return below usually returns to the signal handler.  We need to pre-set the	 * correct error code here to ensure that the right values get saved in sigcontext	 * by ia64_do_signal.	 */	scr->pt.r8 = -EINTR;	while (1) {		current->state = TASK_INTERRUPTIBLE;		schedule();		if (ia64_do_signal(&oldset, scr, 1))			return -EINTR;	}}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/7130667107cd3ab9d6802b69bab63c7d22f20bd4/ia32_signal.c/clean/arch/ia64/ia32/ia32_signal.c