[SPARC64]: Fix {mc,smt}_capable().
authorDavid S. Miller <davem@hutch.davemloft.net>
Tue, 5 Jun 2007 04:48:33 +0000 (21:48 -0700)
committerDavid S. Miller <davem@sunset.davemloft.net>
Tue, 5 Jun 2007 04:50:05 +0000 (21:50 -0700)
It's not just sun4v hypervisor platforms that should return true
for this, sun4u with UltraSPARC-IV should return true too.

Signed-off-by: David S. Miller <davem@davemloft.net>
arch/sparc64/kernel/mdesc.c
arch/sparc64/kernel/prom.c
arch/sparc64/kernel/smp.c
include/asm-sparc64/smp.h
include/asm-sparc64/topology.h

index 1b5db4bc6b34ae05497a18b7649e934635d304ca..f0e16045fb1693f0f8ba9e8e507413833aa05b9f 100644 (file)
@@ -624,6 +624,10 @@ static void __init mdesc_fill_in_cpu_data(void)
                c->proc_id = -1;
        }
 
+#ifdef CONFIG_SMP
+       sparc64_multi_core = 1;
+#endif
+
        set_core_ids();
        set_proc_ids();
 
index 172387d1f6607cd7639032803d4e1c6717e3ec5d..6f4a5284b0ea5dc2117833a05d1fae19997eaf90 100644 (file)
@@ -1782,6 +1782,9 @@ static void __init of_fill_in_cpu_data(void)
 
                        cpu_data(cpuid).core_id = portid + 1;
                        cpu_data(cpuid).proc_id = portid;
+#ifdef CONFIG_SMP
+                       sparc64_multi_core = 1;
+#endif
                } else {
                        cpu_data(cpuid).dcache_size =
                                of_getintprop_default(dp, "dcache-size", 16 * 1024);
index 68a45ac933757c04ed74db9f02f89ff3de9d63ef..4dcd7d0b60f2d8abb8e8ad7630df207cfc39ad21 100644 (file)
@@ -44,6 +44,8 @@
 
 extern void calibrate_delay(void);
 
+int sparc64_multi_core __read_mostly;
+
 /* Please don't make this stuff initdata!!!  --DaveM */
 unsigned char boot_cpu_id;
 
index 540021268684778a380b73f2f981d6414cf5ef43..4fb8c4bfb84869bf58c302f811bdb2857aecd69d 100644 (file)
@@ -34,6 +34,7 @@ extern cpumask_t phys_cpu_present_map;
 
 extern cpumask_t cpu_sibling_map[NR_CPUS];
 extern cpumask_t cpu_core_map[NR_CPUS];
+extern int sparc64_multi_core;
 
 /*
  *     General functions that each host system must provide.
index 4880f7ca0b608d300a05d4c9c299aa70cb0a4280..290ac75f385bee443a24eb9bba11fb70783edc46 100644 (file)
@@ -2,14 +2,12 @@
 #define _ASM_SPARC64_TOPOLOGY_H
 
 #ifdef CONFIG_SMP
-#include <asm/spitfire.h>
-
 #define topology_physical_package_id(cpu)      (cpu_data(cpu).proc_id)
 #define topology_core_id(cpu)                  (cpu_data(cpu).core_id)
 #define topology_core_siblings(cpu)            (cpu_core_map[cpu])
 #define topology_thread_siblings(cpu)          (cpu_sibling_map[cpu])
-#define mc_capable()                           (tlb_type == hypervisor)
-#define smt_capable()                          (tlb_type == hypervisor)
+#define mc_capable()                           (sparc64_multi_core)
+#define smt_capable()                          (sparc64_multi_core)
 #endif /* CONFIG_SMP */
 
 #include <asm-generic/topology.h>