|
@@ -44,22 +44,15 @@ csum_partial(const void *buff, int len, __wsum sum)
|
|
|
* here even more important to align src and dst on a 32-bit (or even
|
|
|
* better 64-bit) boundary
|
|
|
*
|
|
|
- * Copy from userspace and compute checksum. If we catch an exception
|
|
|
- * then zero the rest of the buffer.
|
|
|
+ * Copy from userspace and compute checksum.
|
|
|
*/
|
|
|
static inline __wsum
|
|
|
csum_partial_copy_from_user(const void __user *src, void *dst,
|
|
|
int len, __wsum sum,
|
|
|
int *err_ptr)
|
|
|
{
|
|
|
- int missing;
|
|
|
-
|
|
|
- missing = copy_from_user(dst, src, len);
|
|
|
- if (missing) {
|
|
|
- memset(dst + len - missing, 0, missing);
|
|
|
+ if (unlikely(copy_from_user(dst, src, len)))
|
|
|
*err_ptr = -EFAULT;
|
|
|
- }
|
|
|
-
|
|
|
return csum_partial(dst, len, sum);
|
|
|
}
|
|
|
|