I guess that csum_ipv6_magic() in include/asm-mips/checksum.h needs "addu %0, $1" at the next of "sltu $1, %0, $1". Without this, you cannot add a carry of the last addtion. --- checksum.h.ORG Mon Oct 22 15:09:32 2001 +++ checksum.h Mon Oct 22 15:09:51 2001 @@ -249,6 +249,7 @@ static __inline__ unsigned short int csu "addu\t%0, $1\n\t" "addu\t%0, %1\n\t" "sltu\t$1, %0, $1\n\t" + "addu\t%0, $1\n\t" ".set\tnoat\n\t" ".set\tnoreorder" : "=r" (sum), "=r" (proto) --- Hiroyuki Machida Sony Corp.