I can read this in the include/asm/checksum.h file : /* * computes the checksum of a memory block at buff, length len, * and adds in "sum" (32-bit) * * returns a 32-bit number suitable for feeding into itself * or csum_tcpudp_magic * * this function must be called with even lengths, except * for the last fragment, which may be odd * * it's best to have buff aligned on a 32-bit boundary */ asmlinkage unsigned int csum_partial(const unsigned char * buff, int len, unsigned int sum); Then, my question is about the length of the buffer. Does it care the buffer length is even or odd or we simply don't have to care about this ? Is the alignement of the buffer only necessary for performances ? -- DINH Viêt Hoà, ingénieur associé, projet PARIS IRISA-INRIA, Campus de Beaulieu, 35042 Rennes cedex, France Tél: +33 (0) 2 99 84 75 98, Fax: +33 (0) 2 99 84 25 28 - Kernelnewbies: Help each other learn about the Linux kernel. Archive: http://mail.nl.linux.org/kernelnewbies/ IRC Channel: irc.openprojects.net / #kernelnewbies Web Page: http://www.kernelnewbies.org/