Skip to content

Commit d341659

Browse files
author
Al Viro
committed
xtensa: switch to providing csum_and_copy_from_user()
Signed-off-by: Al Viro <[email protected]>
1 parent 76666be commit d341659

File tree

1 file changed

+7
-4
lines changed

1 file changed

+7
-4
lines changed

arch/xtensa/include/asm/checksum.h

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -44,8 +44,6 @@ asmlinkage __wsum csum_partial_copy_generic(const void *src, void *dst,
4444
/*
4545
* Note: when you get a NULL pointer exception here this means someone
4646
* passed in an incorrect kernel address to one of these functions.
47-
*
48-
* If you use these functions directly please don't forget the access_ok().
4947
*/
5048
static inline
5149
__wsum csum_partial_copy_nocheck(const void *src, void *dst,
@@ -54,12 +52,17 @@ __wsum csum_partial_copy_nocheck(const void *src, void *dst,
5452
return csum_partial_copy_generic(src, dst, len, sum, NULL, NULL);
5553
}
5654

55+
#define _HAVE_ARCH_COPY_AND_CSUM_FROM_USER
5756
static inline
58-
__wsum csum_partial_copy_from_user(const void __user *src, void *dst,
57+
__wsum csum_and_copy_from_user(const void __user *src, void *dst,
5958
int len, __wsum sum, int *err_ptr)
6059
{
61-
return csum_partial_copy_generic((__force const void *)src, dst,
60+
if (access_ok(dst, len))
61+
return csum_partial_copy_generic((__force const void *)src, dst,
6262
len, sum, err_ptr, NULL);
63+
if (len)
64+
*err_ptr = -EFAULT;
65+
return sum;
6366
}
6467

6568
/*

0 commit comments

Comments
 (0)