[PATCH] i383 numa: fix numaq/summit apicid conflict
authorKeith Mannthey <kmannth@us.ibm.com>
Wed, 4 Oct 2006 01:25:52 +0000 (18:25 -0700)
committerLinus Torvalds <torvalds@g5.osdl.org>
Wed, 4 Oct 2006 01:46:10 +0000 (18:46 -0700)
This allows numaq to properly align cpus to their given node during
boot.  Pass logical apicid to apicid_to_node and allow the summit
sub-arch to use physical apicid (hard_smp_processor_id()).

Tested against numaq and summit based systems with no issues.

Signed-off-by: Keith Mannthey <kmannth@us.ibm.com>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
arch/i386/kernel/smpboot.c
include/asm-i386/mach-summit/mach_apic.h

index 9d93ecf..4bb8b77 100644 (file)
@@ -648,7 +648,7 @@ static void map_cpu_to_logical_apicid(void)
 {
        int cpu = smp_processor_id();
        int apicid = logical_smp_processor_id();
-       int node = apicid_to_node(hard_smp_processor_id());
+       int node = apicid_to_node(apicid);
 
        if (!node_online(node))
                node = first_online_node;
index 254a0fe..ef0671e 100644 (file)
@@ -88,7 +88,7 @@ static inline void clustered_apic_check(void)
 
 static inline int apicid_to_node(int logical_apicid)
 {
-       return apicid_2_node[logical_apicid];
+       return apicid_2_node[hard_smp_processor_id()];
 }
 
 /* Mapping from cpu number to logical apicid */