x86: print info about late C1E detection on 32bit as well
authorThomas Gleixner <tglx@linutronix.de>
Wed, 17 Oct 2007 16:04:40 +0000 (18:04 +0200)
committerThomas Gleixner <tglx@inhelltoy.tec.linutronix.de>
Wed, 17 Oct 2007 18:16:50 +0000 (20:16 +0200)
Some BIOSes set the C1E flag only on the second core. Print a warning so
the Firmware Toolkit can check for it.

mingo: fix C1E build bug on 32-bit

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
arch/x86/kernel/cpu/amd.c

index dcf6bbb1c7c0011d3a91f2e722f7d1abf25c8364..5f8af875f457bcaa99dda66e2deee7179f925ae9 100644 (file)
@@ -4,6 +4,7 @@
 #include <asm/io.h>
 #include <asm/processor.h>
 #include <asm/apic.h>
+#include <asm/mach_apic.h>
 
 #include "cpu.h"
 
@@ -45,13 +46,17 @@ static __cpuinit int amd_apic_timer_broken(void)
        case CPUID_XFAM_10H:
        case CPUID_XFAM_11H:
                rdmsr(MSR_K8_ENABLE_C1E, lo, hi);
-               if (lo & ENABLE_C1E_MASK)
+               if (lo & ENABLE_C1E_MASK) {
+                       if (smp_processor_id() != boot_cpu_physical_apicid)
+                               printk(KERN_INFO "AMD C1E detected late. "
+                                      "        Force timer broadcast.\n");
                        return 1;
-                break;
-        default:
-                /* err on the side of caution */
+               }
+               break;
+       default:
+               /* err on the side of caution */
                return 1;
-        }
+       }
        return 0;
 }
 #endif