fedora core 6 1.2949 + vserver 2.2.0
[linux-2.6.git] / arch / parisc / lib / checksum.c
index 8a1e080..462696d 100644 (file)
@@ -101,11 +101,14 @@ out:
 /*
  * computes a partial checksum, e.g. for TCP/UDP fragments
  */
-unsigned int csum_partial(const unsigned char *buff, int len, unsigned int sum)
+/*
+ * why bother folding?
+ */
+__wsum csum_partial(const void *buff, int len, __wsum sum)
 {
        unsigned int result = do_csum(buff, len);
        addc(result, sum);
-       return from32to16(result);
+       return (__force __wsum)from32to16(result);
 }
 
 EXPORT_SYMBOL(csum_partial);
@@ -113,8 +116,8 @@ EXPORT_SYMBOL(csum_partial);
 /*
  * copy while checksumming, otherwise like csum_partial
  */
-unsigned int csum_partial_copy_nocheck(const unsigned char *src, unsigned char *dst,
-                                      int len, unsigned int sum)
+__wsum csum_partial_copy_nocheck(const void *src, void *dst,
+                                      int len, __wsum sum)
 {
        /*
         * It's 2:30 am and I don't feel like doing it real ...
@@ -131,9 +134,9 @@ EXPORT_SYMBOL(csum_partial_copy_nocheck);
  * Copy from userspace and compute checksum.  If we catch an exception
  * then zero the rest of the buffer.
  */
-unsigned int csum_partial_copy_from_user(const unsigned char __user *src,
-                                       unsigned char *dst, int len,
-                                       unsigned int sum, int *err_ptr)
+__wsum csum_partial_copy_from_user(const void __user *src,
+                                       void *dst, int len,
+                                       __wsum sum, int *err_ptr)
 {
        int missing;