to->si_addr = (void *)(u64) (tmp & PSW32_ADDR_INSN); 
to->si_addr = (void __user *)(u64) (tmp & PSW32_ADDR_INSN); 
int copy_siginfo_from_user32(siginfo_t *to, compat_siginfo_t __user *from){	int err;	u32 tmp;	if (!access_ok (VERIFY_READ, from, sizeof(compat_siginfo_t)))		return -EFAULT;	err = __get_user(to->si_signo, &from->si_signo);	err |= __get_user(to->si_errno, &from->si_errno);	err |= __get_user(to->si_code, &from->si_code);	if (to->si_code < 0)		err |= __copy_from_user(&to->_sifields._pad, &from->_sifields._pad, SI_PAD_SIZE);	else {		switch (to->si_code >> 16) {		case __SI_RT >> 16: /* This is not generated by the kernel as of now.  */		case __SI_MESGQ >> 16:			err |= __get_user(to->si_int, &from->si_int);			/* fallthrough */		case __SI_KILL >> 16:			err |= __get_user(to->si_pid, &from->si_pid);			err |= __get_user(to->si_uid, &from->si_uid);			break;		case __SI_CHLD >> 16:			err |= __get_user(to->si_pid, &from->si_pid);			err |= __get_user(to->si_uid, &from->si_uid);			err |= __get_user(to->si_utime, &from->si_utime);			err |= __get_user(to->si_stime, &from->si_stime);			err |= __get_user(to->si_status, &from->si_status);			break;		case __SI_FAULT >> 16:			err |= __get_user(tmp, &from->si_addr);			to->si_addr = (void *)(u64) (tmp & PSW32_ADDR_INSN);			break;		case __SI_POLL >> 16:			err |= __get_user(to->si_band, &from->si_band);			err |= __get_user(to->si_fd, &from->si_fd);			break;		case __SI_TIMER >> 16:			err |= __get_user(to->si_tid, &from->si_tid);			err |= __get_user(to->si_overrun, &from->si_overrun);			err |= __get_user(to->si_int, &from->si_int);			break;		default:			break;		}	}	return err;}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/c28144763a7dcdceb2c16a5ac9c8e0022d547d28/compat_signal.c/buggy/arch/s390/kernel/compat_signal.c