Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 15 Sep 2020 20:47:34 +0000 (UTC)
From:      Brandon Bergren <bdragon@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r365770 - head/sys/powerpc/powerpc
Message-ID:  <202009152047.08FKlYeU009558@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: bdragon
Date: Tue Sep 15 20:47:33 2020
New Revision: 365770
URL: https://svnweb.freebsd.org/changeset/base/365770

Log:
  [PowerPC64LE] Use correct in_masks table on LE to fix checksumming
  
  Due to a check that should have been an endian check being an #if 0,
  the wrong checksum mask table was being used on LE, which was causing
  extreme strangeness in DNS resolution -- *some* hosts would be resolvable,
  but most would not.
  
  This fixes DNS resolution.
  
  (I am committing some parts of the LE patchset ahead of time to reduce the
  amount of work I have to do while committing the main patchset.)
  
  Sponsored by:	Tag1 Consulting, Inc.

Modified:
  head/sys/powerpc/powerpc/in_cksum.c

Modified: head/sys/powerpc/powerpc/in_cksum.c
==============================================================================
--- head/sys/powerpc/powerpc/in_cksum.c	Tue Sep 15 20:26:31 2020	(r365769)
+++ head/sys/powerpc/powerpc/in_cksum.c	Tue Sep 15 20:47:33 2020	(r365770)
@@ -42,6 +42,7 @@
 
 #include <sys/cdefs.h>			/* RCS ID & Copyright macro defns */
 
+#include <sys/endian.h>
 #include <sys/param.h>
 #include <sys/mbuf.h>
 #include <sys/systm.h>
@@ -73,7 +74,7 @@
     }
 
 static const u_int32_t in_masks[] = {
-#if 0
+#if _BYTE_ORDER == _LITTLE_ENDIAN
 	/*0 bytes*/ /*1 byte*/	/*2 bytes*/ /*3 bytes*/
 	0x00000000, 0x000000FF, 0x0000FFFF, 0x00FFFFFF,	/* offset 0 */
 	0x00000000, 0x0000FF00, 0x00FFFF00, 0xFFFFFF00,	/* offset 1 */



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202009152047.08FKlYeU009558>