arm: switch to csum_and_copy_from_user()
authorAl Viro <viro@zeniv.linux.org.uk>
Tue, 18 Feb 2020 19:19:54 +0000 (14:19 -0500)
committerAl Viro <viro@zeniv.linux.org.uk>
Fri, 29 May 2020 20:11:49 +0000 (16:11 -0400)
Note that csum_partial_copy_from_user() is in assembler here,
so I'm leaving it alone and just providing the wrapper for
it.  When/if we go for switching arm to user_access_{begin,end}()
(doing domain switches in those), somebody well need to look
into that one.

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
arch/arm/include/asm/checksum.h

index 20043e0..ed6073f 100644 (file)
@@ -40,6 +40,20 @@ csum_partial_copy_nocheck(const void *src, void *dst, int len, __wsum sum);
 __wsum
 csum_partial_copy_from_user(const void __user *src, void *dst, int len, __wsum sum, int *err_ptr);
 
+#define _HAVE_ARCH_COPY_AND_CSUM_FROM_USER
+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)
+               *err_ptr = -EFAULT;
+
+       return sum;
+}
+
 /*
  *     Fold a partial checksum without adding pseudo headers
  */