copy_from_user_nofault
if (copy_from_user_nofault(&instr, (void __user *)pc,
return copy_from_user_nofault(ret, ptr, size);
if (copy_from_user_nofault(&instr, (unsigned int __user *)addr,
ret = copy_from_user_nofault(&inst,
return copy_from_user_nofault(val, uaddr, sizeof(*val));
long copy_from_user_nofault(void *dst, const void __user *src, size_t size);
ret = copy_from_user_nofault(dst, unsafe_ptr, size);
return copy_from_user_nofault(dst, (const void __user *)unsafe_src, size);
return copy_from_user_nofault(dest, uaddr, size);
EXPORT_SYMBOL_GPL(copy_from_user_nofault);