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 <an...@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
_______________________________________________
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