Gitweb:     
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=a2f9f6bbb30e60ee9f9f83cede960123a65876a2
Commit:     a2f9f6bbb30e60ee9f9f83cede960123a65876a2
Parent:     5cd342df96e911fb8135fb3d58f33c2c5af9ffab
Author:     David S. Miller <[EMAIL PROTECTED]>
AuthorDate: Mon Jun 4 21:48:33 2007 -0700
Committer:  David S. Miller <[EMAIL PROTECTED]>
CommitDate: Mon Jun 4 21:50:05 2007 -0700

    [SPARC64]: Fix {mc,smt}_capable().
    
    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 <[EMAIL PROTECTED]>
---
 arch/sparc64/kernel/mdesc.c    |    4 ++++
 arch/sparc64/kernel/prom.c     |    3 +++
 arch/sparc64/kernel/smp.c      |    2 ++
 include/asm-sparc64/smp.h      |    1 +
 include/asm-sparc64/topology.h |    6 ++----
 5 files changed, 12 insertions(+), 4 deletions(-)

diff --git a/arch/sparc64/kernel/mdesc.c b/arch/sparc64/kernel/mdesc.c
index 1b5db4b..f0e1604 100644
--- a/arch/sparc64/kernel/mdesc.c
+++ b/arch/sparc64/kernel/mdesc.c
@@ -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();
 
diff --git a/arch/sparc64/kernel/prom.c b/arch/sparc64/kernel/prom.c
index 172387d..6f4a528 100644
--- a/arch/sparc64/kernel/prom.c
+++ b/arch/sparc64/kernel/prom.c
@@ -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);
diff --git a/arch/sparc64/kernel/smp.c b/arch/sparc64/kernel/smp.c
index 68a45ac..4dcd7d0 100644
--- a/arch/sparc64/kernel/smp.c
+++ b/arch/sparc64/kernel/smp.c
@@ -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;
 
diff --git a/include/asm-sparc64/smp.h b/include/asm-sparc64/smp.h
index 5400212..4fb8c4b 100644
--- a/include/asm-sparc64/smp.h
+++ b/include/asm-sparc64/smp.h
@@ -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.
diff --git a/include/asm-sparc64/topology.h b/include/asm-sparc64/topology.h
index 4880f7c..290ac75 100644
--- a/include/asm-sparc64/topology.h
+++ b/include/asm-sparc64/topology.h
@@ -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>
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to