[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <1253888440-14111-1-git-send-email-matt@console-pimps.org>
Date: Fri, 25 Sep 2009 15:20:40 +0100
From: Matt Fleming <matt@...sole-pimps.org>
To: Arnd Bergmann <arnd@...db.de>
Cc: linux-kernel@...r.kernel.org, Mike Frysinger <vapier@...too.org>
Subject: [PATCH] lib/checksum.c: Fix another endianess bug
From: Matt Fleming <matthew.fleming@...tec.com>
This fix allows the generic checksum code to work on my little endian
system. The previous fix was not enough, as "buff" is a big-endian
value. Without this patch I see malformed TCP packets.
Signed-off-by: Matt Fleming <matthew.fleming@...tec.com>
---
lib/checksum.c | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/lib/checksum.c b/lib/checksum.c
index b2e2fd4..c34f030 100644
--- a/lib/checksum.c
+++ b/lib/checksum.c
@@ -55,10 +55,10 @@ static unsigned int do_csum(const unsigned char *buff, int len)
goto out;
odd = 1 & (unsigned long) buff;
if (odd) {
-#ifdef __LITTLE_ENDIAN
+#ifdef __BIG_ENDIAN
result = *buff;
#else
- result += (*buff << 8);
+ result = (*buff << 8);
#endif
len--;
buff++;
--
1.6.3.GIT
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists