summaryrefslogtreecommitdiffstats
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-stable-5904122c46581a5ccee54a51ef07e0d891fd7aef.tar.gz
linux-stable-5904122c46581a5ccee54a51ef07e0d891fd7aef.tar.bz2
linux-stable-5904122c46581a5ccee54a51ef07e0d891fd7aef.zip
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