Merge tag 'kconfig-v5.13' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy...
[linux-2.6-microblaze.git] / include / net / checksum.h
index 46754ba..0d05b9e 100644 (file)
 #ifndef _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)
+                                     int len)
 {
        if (copy_from_user(dst, src, len))
-               *err_ptr = -EFAULT;
-       return csum_partial(dst, len, sum);
+               return 0;
+       return csum_partial(dst, len, ~0U);
 }
 #endif
 
 #ifndef HAVE_CSUM_COPY_USER
 static __inline__ __wsum csum_and_copy_to_user
-(const void *src, void __user *dst, int len, __wsum sum, int *err_ptr)
+(const void *src, void __user *dst, int len)
 {
-       sum = csum_partial(src, len, sum);
+       __wsum sum = csum_partial(src, len, ~0U);
 
        if (copy_to_user(dst, src, len) == 0)
                return sum;
-       if (len)
-               *err_ptr = -EFAULT;
+       return 0;
+}
+#endif
 
-       return (__force __wsum)-1; /* invalid checksum */
+#ifndef _HAVE_ARCH_CSUM_AND_COPY
+static inline __wsum
+csum_partial_copy_nocheck(const void *src, void *dst, int len)
+{
+       memcpy(dst, src, len);
+       return csum_partial(dst, len, 0);
 }
 #endif