[PATCH] x86_64: Use safe_smp_processor_id in MCE handler
authorAndi Kleen <ak@suse.de>
Wed, 11 Jan 2006 21:46:54 +0000 (22:46 +0100)
committerLinus Torvalds <torvalds@g5.osdl.org>
Thu, 12 Jan 2006 03:05:03 +0000 (19:05 -0800)
hard_smp_processor_id would return the local APIC id instead
of the Linux processor id. On big systems they are often
not identical. safe_smp_processor_id is just a wrapper
around it that does the necessary conversions.

Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
arch/x86_64/kernel/mce.c

index b8f28ebdce261656e4141d4eec6849200d91cce0..13a2eada6c9520e2e32d38e278f6e57e8c06cd53 100644 (file)
@@ -24,6 +24,7 @@
 #include <asm/mce.h>
 #include <asm/kdebug.h>
 #include <asm/uaccess.h>
+#include <asm/smp.h>
 
 #define MISC_MCELOG_MINOR 227
 #define NR_BANKS 6
@@ -178,7 +179,7 @@ void do_machine_check(struct pt_regs * regs, long error_code)
                return;
 
        memset(&m, 0, sizeof(struct mce));
-       m.cpu = hard_smp_processor_id();
+       m.cpu = safe_smp_processor_id();
        rdmsrl(MSR_IA32_MCG_STATUS, m.mcgstatus);
        if (!(m.mcgstatus & MCG_STATUS_RIPV))
                kill_it = 1;