From 274254e1f184ca57cd6444de4e77da122e2ad6e2 Mon Sep 17 00:00:00 2001 From: Paul Saab Date: Sun, 7 May 2000 16:41:15 +0000 Subject: [PATCH] Fix checksum calculations. This should fix the network problems in current where all packets were returning with bad checksums. (observed with netstat -s). Reviewed by: alfred --- sys/alpha/alpha/in_cksum.c | 3 +-- sys/i386/i386/in_cksum.c | 3 +-- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/sys/alpha/alpha/in_cksum.c b/sys/alpha/alpha/in_cksum.c index 88b68a22d59..4b7fca2055e 100644 --- a/sys/alpha/alpha/in_cksum.c +++ b/sys/alpha/alpha/in_cksum.c @@ -69,7 +69,6 @@ sum = l_util.s[0] + l_util.s[1]; \ ADDCARRY(sum); \ } -#define INVERT sum == 0xffff ? sum : ~sum & 0xffff static const u_int32_t in_masks[] = { /*0 bytes*/ /*1 byte*/ /*2 bytes*/ /*3 bytes*/ @@ -236,7 +235,7 @@ skip_start: len -= mlen; } REDUCE16; - return (INVERT); + return (~sum & 0xffff); } u_int in_cksum_hdr(ip) diff --git a/sys/i386/i386/in_cksum.c b/sys/i386/i386/in_cksum.c index e762bdbd6fe..661d506a20e 100644 --- a/sys/i386/i386/in_cksum.c +++ b/sys/i386/i386/in_cksum.c @@ -57,7 +57,6 @@ #undef ADDCARRY #define ADDCARRY(x) if ((x) > 0xffff) (x) -= 0xffff #define REDUCE {sum = (sum & 0xffff) + (sum >> 16); ADDCARRY(sum);} -#define INVERT sum == 0xffff ? sum : ~sum & 0xffff /* * Thanks to gcc we don't have to guess @@ -257,5 +256,5 @@ skip_start: sum += su.s; } REDUCE; - return (INVERT); + return (~sum & 0xffff); }