summary refs log tree commit diff
diff options
context:
space:
mode:
authorH.J. Lu <hongjiu.lu@intel.com>2010-05-27 11:14:18 -0700
committerAndreas Schwab <schwab@redhat.com>2010-06-01 09:54:08 +0200
commit6f8d0c6391d8d47d9d70bbdbeaa8813b657ae097 (patch)
tree09cc87bf63104d9e25e6d000584c56181c9074e1
parentf29cabcd71c9ec83b674844f75dbaa2dab952979 (diff)
downloadglibc-6f8d0c6391d8d47d9d70bbdbeaa8813b657ae097.tar.gz
glibc-6f8d0c6391d8d47d9d70bbdbeaa8813b657ae097.tar.xz
glibc-6f8d0c6391d8d47d9d70bbdbeaa8813b657ae097.zip
Incorrect x86 CPU family and model check.
(cherry picked from commit 3c88fe1e3ab8c6115e9b0c6eb109718da2116a33)
-rw-r--r--ChangeLog6
-rw-r--r--sysdeps/x86_64/multiarch/init-arch.c6
2 files changed, 9 insertions, 3 deletions
diff --git a/ChangeLog b/ChangeLog
index bc58d931b8..5cd7148896 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2010-05-26  H.J. Lu  <hongjiu.lu@intel.com>
+
+	[BZ #11640]
+	* sysdeps/x86_64/multiarch/init-arch.c (__init_cpu_features):
+	Properly check family and model.
+
 2010-05-26  Takashi Yoshii  <takashi.yoshii.zj@renesas.com>
 
 	* sysdeps/unix/sysv/linux/sh/sh4/register-dump.h: Fix iov[] size.
diff --git a/sysdeps/x86_64/multiarch/init-arch.c b/sysdeps/x86_64/multiarch/init-arch.c
index efb89b6c92..f13a9f4b79 100644
--- a/sysdeps/x86_64/multiarch/init-arch.c
+++ b/sysdeps/x86_64/multiarch/init-arch.c
@@ -62,15 +62,15 @@ __init_cpu_features (void)
       unsigned int eax = __cpu_features.cpuid[COMMON_CPUID_INDEX_1].eax;
       unsigned int extended_family = (eax >> 20) & 0xff;
       unsigned int extended_model = (eax >> 12) & 0xf0;
-      if (__cpu_features.family == 0x0f)
+      if (family == 0x0f)
 	{
 	  family += extended_family;
 	  model += extended_model;
 	}
-      else if (__cpu_features.family == 0x06)
+      else if (family == 0x06)
 	{
 	  model += extended_model;
-	  switch (__cpu_features.model)
+	  switch (model)
 	    {
 	    case 0x1a:
 	    case 0x1e: