X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=include%2Fnet%2Fchecksum.h;h=bd570858fadaae2a7d439ab578746540d9f05123;hb=6a77f38946aaee1cd85eeec6cf4229b204c15071;hp=cd3c52a594e4b3a1252a3f3a75782bd81fc6ee39;hpb=9213980e6a70d8473e0ffd4b39ab5b6caaba9ff5;p=linux-2.6.git diff --git a/include/net/checksum.h b/include/net/checksum.h index cd3c52a59..bd570858f 100644 --- a/include/net/checksum.h +++ b/include/net/checksum.h @@ -16,86 +16,18 @@ * 2 of the License, or (at your option) any later version. */ -/* - * Fixes: - * - * Ralf Baechle : generic ipv6 checksum - * - */ - #ifndef _CHECKSUM_H #define _CHECKSUM_H +#include #include #include -#include -#include #include #include -#ifndef _HAVE_ARCH_IPV6_CSUM - -static __inline__ unsigned short int csum_ipv6_magic(struct in6_addr *saddr, - struct in6_addr *daddr, - __u16 len, - unsigned short proto, - unsigned int csum) -{ - - int carry; - __u32 ulen; - __u32 uproto; - - csum += saddr->s6_addr32[0]; - carry = (csum < saddr->s6_addr32[0]); - csum += carry; - - csum += saddr->s6_addr32[1]; - carry = (csum < saddr->s6_addr32[1]); - csum += carry; - - csum += saddr->s6_addr32[2]; - carry = (csum < saddr->s6_addr32[2]); - csum += carry; - - csum += saddr->s6_addr32[3]; - carry = (csum < saddr->s6_addr32[3]); - csum += carry; - - csum += daddr->s6_addr32[0]; - carry = (csum < daddr->s6_addr32[0]); - csum += carry; - - csum += daddr->s6_addr32[1]; - carry = (csum < daddr->s6_addr32[1]); - csum += carry; - - csum += daddr->s6_addr32[2]; - carry = (csum < daddr->s6_addr32[2]); - csum += carry; - - csum += daddr->s6_addr32[3]; - carry = (csum < daddr->s6_addr32[3]); - csum += carry; - - ulen = htonl((__u32) len); - csum += ulen; - carry = (csum < ulen); - csum += carry; - - uproto = htonl(proto); - csum += uproto; - carry = (csum < uproto); - csum += carry; - - return csum_fold(csum); -} - -#endif - #ifndef _HAVE_ARCH_COPY_AND_CSUM_FROM_USER static inline -unsigned int csum_and_copy_from_user (const char __user *src, char *dst, +unsigned int csum_and_copy_from_user (const unsigned char __user *src, unsigned char *dst, int len, int sum, int *err_ptr) { if (verify_area(VERIFY_READ, src, len) == 0) @@ -110,7 +42,7 @@ unsigned int csum_and_copy_from_user (const char __user *src, char *dst, #ifndef HAVE_CSUM_COPY_USER static __inline__ unsigned int csum_and_copy_to_user -(const char *src, char __user *dst, int len, unsigned int sum, int *err_ptr) +(const unsigned char *src, unsigned char __user *dst, int len, unsigned int sum, int *err_ptr) { sum = csum_partial(src, len, sum);