diff options
author | Al Viro <viro@zeniv.linux.org.uk> | 2020-02-18 22:18:09 +0300 |
---|---|---|
committer | Al Viro <viro@zeniv.linux.org.uk> | 2020-05-29 23:11:49 +0300 |
commit | 7fe8970a78a1934545d53267281f1737eefea3bb (patch) | |
tree | 8c58af05b78e2f7e100ec348a1a8eb5f28d7f577 /arch/sh | |
parent | 8084c99b9af68621ff15562732bfc9f8e7cce93c (diff) | |
download | linux-7fe8970a78a1934545d53267281f1737eefea3bb.tar.xz |
sh32: convert to csum_and_copy_from_user()
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'arch/sh')
-rw-r--r-- | arch/sh/include/asm/checksum_32.h | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/arch/sh/include/asm/checksum_32.h b/arch/sh/include/asm/checksum_32.h index 36b84cfd3f67..91571a42e44e 100644 --- a/arch/sh/include/asm/checksum_32.h +++ b/arch/sh/include/asm/checksum_32.h @@ -48,12 +48,17 @@ __wsum csum_partial_copy_nocheck(const void *src, void *dst, return csum_partial_copy_generic(src, dst, len, sum, NULL, NULL); } +#define _HAVE_ARCH_COPY_AND_CSUM_FROM_USER static inline -__wsum csum_partial_copy_from_user(const void __user *src, void *dst, +__wsum csum_and_copy_from_user(const void __user *src, void *dst, int len, __wsum sum, int *err_ptr) { - return csum_partial_copy_generic((__force const void *)src, dst, + if (access_ok(src, len)) + return csum_partial_copy_generic((__force const void *)src, dst, len, sum, err_ptr, NULL); + if (len) + *err_ptr = -EFAULT; + return sum; } /* |