patch-2.4.8 linux/include/asm-s390/checksum.h
Next file: linux/include/asm-s390/current.h
Previous file: linux/include/asm-s390/chandev.h
Back to the patch index
Back to the overall index
- Lines: 36
- Date:
Wed Jul 25 14:12:02 2001
- Orig file:
v2.4.7/linux/include/asm-s390/checksum.h
- Orig date:
Wed Apr 11 19:02:28 2001
diff -u --recursive --new-file v2.4.7/linux/include/asm-s390/checksum.h linux/include/asm-s390/checksum.h
@@ -67,19 +67,26 @@
*
* here even more important to align src and dst on a 32-bit (or even
* better 64-bit) boundary
+ *
+ * Copy from userspace and compute checksum. If we catch an exception
+ * then zero the rest of the buffer.
*/
-
extern inline unsigned int
-csum_partial_copy_from_user(const char *src, char *dst,
- int len, unsigned int sum, int *errp)
+csum_partial_copy_from_user (const char *src, char *dst,
+ int len, unsigned int sum,
+ int *err_ptr)
{
- if (copy_from_user(dst, src, len)) {
- *errp = -EFAULT;
- memset(dst, 0, len);
- return sum;
- }
- return csum_partial(dst, len, sum);
+ int missing;
+
+ missing = copy_from_user(dst, src, len);
+ if (missing) {
+ memset(dst + len - missing, 0, missing);
+ *err_ptr = -EFAULT;
+ }
+
+ return csum_partial(dst, len, sum);
}
+
extern inline unsigned int
csum_partial_copy_nocheck (const char *src, char *dst, int len, unsigned int sum)
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)