x86, mce: use 64bit machine check code on 32bit
[pandora-kernel.git] / arch / x86 / kernel / apic / nmi.c
index d6bd624..c476227 100644 (file)
@@ -66,7 +66,7 @@ static inline unsigned int get_nmi_count(int cpu)
 
 static inline int mce_in_progress(void)
 {
-#if defined(CONFIG_X86_64) && defined(CONFIG_X86_MCE)
+#if defined(CONFIG_X86_NEW_MCE)
        return atomic_read(&mce_entry) > 0;
 #endif
        return 0;
@@ -138,7 +138,7 @@ int __init check_nmi_watchdog(void)
        if (!prev_nmi_count)
                goto error;
 
-       alloc_cpumask_var(&backtrace_mask, GFP_KERNEL);
+       alloc_cpumask_var(&backtrace_mask, GFP_KERNEL|__GFP_ZERO);
        printk(KERN_INFO "Testing NMI watchdog ... ");
 
 #ifdef CONFIG_SMP
@@ -414,7 +414,8 @@ nmi_watchdog_tick(struct pt_regs *regs, unsigned reason)
                touched = 1;
        }
 
-       if (cpumask_test_cpu(cpu, backtrace_mask)) {
+       /* We can be called before check_nmi_watchdog, hence NULL check. */
+       if (backtrace_mask != NULL && cpumask_test_cpu(cpu, backtrace_mask)) {
                static DEFINE_SPINLOCK(lock);   /* Serialise the printks */
 
                spin_lock(&lock);