svn commit: r322456 - head/lib/libc/x86/sys

Konstantin Belousov kib at FreeBSD.org
Sun Aug 13 14:42:25 UTC 2017


Author: kib
Date: Sun Aug 13 14:42:23 2017
New Revision: 322456
URL: https://svnweb.freebsd.org/changeset/base/322456

Log:
  Fix a regression in r321608.
  
  On i386 with CPUID but without SSE2, set lfence_works to LMB_NONE
  instead of looping.
  
  Reported and tested by:	Andre Albsmeier <andre at fbsd.e4m.org>
  Sponsored by:	The FreeBSD Foundation
  MFC after:	3 days

Modified:
  head/lib/libc/x86/sys/__vdso_gettc.c

Modified: head/lib/libc/x86/sys/__vdso_gettc.c
==============================================================================
--- head/lib/libc/x86/sys/__vdso_gettc.c	Sun Aug 13 14:36:10 2017	(r322455)
+++ head/lib/libc/x86/sys/__vdso_gettc.c	Sun Aug 13 14:42:23 2017	(r322456)
@@ -101,6 +101,7 @@ init_fence(void)
 #if defined(__i386__)
 	u_int cpuid_supported, p[4];
 
+	lfence_works = LMB_NONE;
 	__asm __volatile(
 	    "	pushfl\n"
 	    "	popl	%%eax\n"
@@ -121,8 +122,7 @@ init_fence(void)
 		cpuidp(0x1, p);
 		if ((p[3] & CPUID_SSE2) != 0)
 			lfence_works = select_lmb();
-	} else
-		lfence_works = LMB_NONE;
+	}
 #elif defined(__amd64__)
 	lfence_works = select_lmb();
 #else


More information about the svn-src-all mailing list