Patch to my checksum patches.

Tom May (ftom@netcom.com)
Wed, 5 Jul 1995 11:47:54 -0700


Alan,

My version of csum_partial_copyffs() (in 1.3.6) fails on small
packets. It seems to mess up certain UDP transactions. Here is a
patch:

--- /usr/src/linux/arch/i386/lib/checksum.c.1.3.6 Wed Jul 5 08:56:23 1995
+++ /usr/src/linux/arch/i386/lib/checksum.c Wed Jul 5 10:23:32 1995
@@ -175,15 +175,15 @@
jz 7f
cmpl $2, %%ecx
jb 5f
- movw %%fs:(%%esi), %%dx
+ movw %%fs:(%%esi), %%cx
leal 2(%%esi), %%esi
- movw %%dx, (%%edi)
+ movw %%cx, (%%edi)
leal 2(%%edi), %%edi
je 6f
shll $16,%%edx
-5: movb %%fs:(%%esi), %%dl
- movb %%dl, (%%edi)
-6: addl %%edx, %%eax
+5: movb %%fs:(%%esi), %%cl
+ movb %%cl, (%%edi)
+6: addl %%ecx, %%eax
adcl $0, %%eax
7:
"
@@ -192,6 +192,3 @@
: "bx", "cx", "dx", "si", "di" );
return(sum);
}
-
-
-

Tom.