[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 9d93ecf6d999d82944c017778a40a9cff5cda92c..4bb8b77cd65b257b4b54a730f5c5e3cf46595f4a 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 254a0fe01c6a3f46b5983afc9336b11a61a3d81d..ef0671e5d5c549f244daa69be31acb46583b36ca 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 */