err |= __get_user((u32)(u64)new_sa.sa.sa_handler, &act->sa_handler); 
err |= __get_user(handler, &act->sa_handler); new_sa.sa.sa_handler = (void*)(s64)handler; 
asmlinkage int sys32_rt_sigaction(int sig, const struct sigaction32 *act,				  struct sigaction32 *oact,				  unsigned int sigsetsize){	struct k_sigaction new_sa, old_sa;	int ret = -EINVAL;	/* XXX: Don't preclude handling different sized sigset_t's.  */	if (sigsetsize != sizeof(sigset_t))		goto out;	if (act) {		int err = 0;		if (!access_ok(VERIFY_READ, act, sizeof(*act)))			return -EFAULT;		err |= __get_user((u32)(u64)new_sa.sa.sa_handler,		                  &act->sa_handler);		err |= __get_user(new_sa.sa.sa_flags, &act->sa_flags);		err |= get_sigset(&new_sa.sa.sa_mask, &act->sa_mask);		if (err)			return -EFAULT;	}	ret = do_sigaction(sig, act ? &new_sa : NULL, oact ? &old_sa : NULL);	if (!ret && oact) {		int err = 0;		if (!access_ok(VERIFY_WRITE, oact, sizeof(*oact)))			return -EFAULT;		err |= __put_user((u32)(u64)old_sa.sa.sa_handler,		                   &oact->sa_handler);		err |= __put_user(old_sa.sa.sa_flags, &oact->sa_flags);		err |= put_sigset(&old_sa.sa.sa_mask, &oact->sa_mask);		if (err)			return -EFAULT;	}out:	return ret;}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/77c728c2240a1eb45f7d355f5d87ecc319cd55ce/signal32.c/clean/arch/mips/kernel/signal32.c