patch-2.3.99-pre4 linux/include/asm-arm/checksum.h

Next file: linux/include/asm-arm/cpu-multi32.h
Previous file: linux/include/asm-arm/arch-shark/uncompress.h
Back to the patch index
Back to the overall index

diff -u --recursive --new-file v2.3.99-pre3/linux/include/asm-arm/checksum.h linux/include/asm-arm/checksum.h
@@ -123,12 +123,14 @@
 	adcs	%0, %0, %3
 	adcs	%0, %0, %4
 	adcs	%0, %0, %5
+	adc	%0, %0, #0
 	adds	%0, %0, %0, lsl #16
-	addcs	%0, %0, #0x10000"
+	addcs	%0, %0, #0x10000
+	mvn	%0, %0"
 	: "=&r"(sum)
-	: "r" (sum), "r" (daddr), "r" (saddr), "r" (ntohs(len) << 16), "Ir" (proto << 8)
+	: "r" (sum), "r" (daddr), "r" (saddr), "r" (ntohs(len)), "Ir" (proto << 8)
 	: "cc");
-	return (~sum) >> 16;
+	return sum >> 16;
 }
 
 

FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)