[626] in linux-net channel archive

home help back first fref pref prev next nref lref last post

Checksum bug in 1.3.7

daemon@ATHENA.MIT.EDU (Alan Cox)
Fri Jul 7 00:38:04 1995

Date: Thu, 6 Jul 95 19:32 BST
From: iialan@iifeak.swan.ac.uk (Alan Cox)
To: linux-net@vger.rutgers.edu, torvalds@cs.helsinki.fi, zssz@lx.ncu.edu.pl


This isnt a fix so much as a back out of the checksum.c changes, but it does
seem to be happier 8). Multicast people also need to add a +15 in the
dev_alloc_skb() in net/ipv4/ip.c:ip_loopback()

Alan

--- checksum.c.bust	Thu Jul  6 19:04:01 1995
+++ checksum.c	Thu Jul  6 19:11:30 1995
@@ -175,15 +175,15 @@
 	jz 7f
 	cmpl $2, %%ecx
 	jb 5f
-	movw %%fs:(%%esi), %%cx
+	movw %%fs:(%%esi), %%dx
 	leal 2(%%esi), %%esi
-	movw %%cx, (%%edi)
+	movw %%dx, (%%edi)
 	leal 2(%%edi), %%edi
 	je 6f
 	shll $16,%%edx
-5:	movb %%fs:(%%esi), %%cl
-	movb %%cl, (%%edi)
-6:	addl %%ecx, %%eax
+5:	movb %%fs:(%%esi), %%dl
+	movb %%dl, (%%edi)
+6:	addl %%edx, %%eax
 	adcl $0, %%eax
 7:
 	"
@@ -192,6 +192,9 @@
 	: "bx", "cx", "dx", "si", "di" );
     return(sum);
 }
+
+
+
 /*
  * copy from ds while checksumming, otherwise like csum_partial
  */
@@ -270,15 +273,15 @@
 	jz 7f
 	cmpl $2, %%ecx
 	jb 5f
-	movw (%%esi), %%cx
+	movw (%%esi), %%dx
 	leal 2(%%esi), %%esi
-	movw %%cx, (%%edi)
+	movw %%dx, (%%edi)
 	leal 2(%%edi), %%edi
 	je 6f
 	shll $16,%%edx
-5:	movb (%%esi), %%cl
-	movb %%cl, (%%edi)
-6:	addl %%ecx, %%eax
+5:	movb (%%esi), %%dl
+	movb %%dl, (%%edi)
+6:	addl %%edx, %%eax
 	adcl $0, %%eax
 7:
 	"
@@ -287,3 +290,6 @@
 	: "bx", "cx", "dx", "si", "di" );
     return(sum);
 }
+
+
+

home help back first fref pref prev next nref lref last post