summary refs log tree commit diff
path: root/include/net/checksum.h
diff options
context:
space:
mode:
authorAl Viro <viro@zeniv.linux.org.uk>2020-02-18 14:26:32 -0500
committerAl Viro <viro@zeniv.linux.org.uk>2020-05-29 16:11:50 -0400
commit5904122c46581a5ccee54a51ef07e0d891fd7aef (patch)
tree433bbafc1e3a3cdbfd291d51cfd858186683dff2 /include/net/checksum.h
parent24f9aa928c3cc88bae573b39b6976844968f80a0 (diff)
downloadlinux-5904122c46581a5ccee54a51ef07e0d891fd7aef.tar.gz
take the dummy csum_and_copy_from_user() into net/checksum.h
now that can be done conveniently - all non-trivial cases have
_HAVE_ARCH_COPY_AND_CSUM_FROM_USER defined, so the fallback in
net/checksum.h is used only for dummy (copy_from_user, then
csum_partial) implementation.  Allowing us to get rid of all
dummy instances, both of csum_and_copy_from_user() and
csum_partial_copy_from_user().

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'include/net/checksum.h')
-rw-r--r--include/net/checksum.h8
1 files changed, 2 insertions, 6 deletions
diff --git a/include/net/checksum.h b/include/net/checksum.h
index 97bf4885a962..5f9c73c0eeb9 100644
--- a/include/net/checksum.h
+++ b/include/net/checksum.h
@@ -26,13 +26,9 @@ static inline
 __wsum csum_and_copy_from_user (const void __user *src, void *dst,
 				      int len, __wsum sum, int *err_ptr)
 {
-	if (access_ok(src, len))
-		return csum_partial_copy_from_user(src, dst, len, sum, err_ptr);
-
-	if (len)
+	if (copy_from_user(dst, src, len))
 		*err_ptr = -EFAULT;
-
-	return sum;
+	return csum_partial(dst, len, sum);
 }
 #endif