Separate out init code from the rest of the 32bit flat code.
[seabios.git] / src / smp.c
index f989ec129d023f85d651e255e61662454e25c524..38e117ebb74b389e61b8c42377a0c67d8f4e5bce 100644 (file)
--- a/src/smp.c
+++ b/src/smp.c
@@ -72,7 +72,7 @@ smp_probe(void)
     ASSERT32FLAT();
     u32 eax, ebx, ecx, cpuid_features;
     cpuid(1, &eax, &ebx, &ecx, &cpuid_features);
-    if ((cpuid_features & CPUID_APIC)) {
+    if (eax < 1 || !(cpuid_features & CPUID_APIC)) {
         // No apic - only the main cpu is present.
         dprintf(1, "No apic - only the main cpu is present.\n");
         CountCPUs= 1;