[NTOSKRNL]
authorDmitry Gorbachev <gorbachev@reactos.org>
Thu, 22 Sep 2011 06:08:35 +0000 (06:08 +0000)
committerDmitry Gorbachev <gorbachev@reactos.org>
Thu, 22 Sep 2011 06:08:35 +0000 (06:08 +0000)
Do not fail with unknown CPUs. Bug #6493.

svn path=/trunk/; revision=53799

reactos/ntoskrnl/ke/i386/cpu.c

index 9df29de..7c548fe 100644 (file)
@@ -247,8 +247,9 @@ KiGetCpuVendor(VOID)
         return CPU_RISE;
     }
 
-    /* Invalid CPU */
-    return 0;
+    /* Unknown CPU */
+    DPRINT1("%s CPU support not fully tested!\n", Prcb->VendorString);
+    return CPU_UNKNOWN;
 }
 
 ULONG
@@ -311,9 +312,6 @@ KiGetFeatureBits(VOID)
                 Reg[3] &= ~0x800;
             }
 
-            /* Set the current features */
-            CpuFeatures = Reg[3];
-
             break;
 
         /* AMD CPUs */
@@ -363,9 +361,6 @@ KiGetFeatureBits(VOID)
                 ExtendedCPUID = FALSE;
             }
 
-            /* Set the current features */
-            CpuFeatures = Reg[3];
-
             break;
 
         /* Cyrix CPUs */
@@ -385,9 +380,6 @@ KiGetFeatureBits(VOID)
                 setCx86(CX86_CCR1, Ccr1);
             }
 
-            /* Set the current features */
-            CpuFeatures = Reg[3];
-
             break;
 
         /* Transmeta CPUs */
@@ -413,6 +405,9 @@ KiGetFeatureBits(VOID)
             break;
     }
 
+    /* Set the current features */
+    CpuFeatures = Reg[3];
+
     /* Convert all CPUID Feature bits into our format */
     if (CpuFeatures & 0x00000002) FeatureBits |= KF_V86_VIS | KF_CR4;
     if (CpuFeatures & 0x00000008) FeatureBits |= KF_LARGE_PAGE | KF_CR4;