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 */
_______________________________________________
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to