aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid S. Miller <davem@hutch.davemloft.net>2007-06-05 00:48:33 -0400
committerDavid S. Miller <davem@sunset.davemloft.net>2007-06-05 00:50:05 -0400
commita2f9f6bbb30e60ee9f9f83cede960123a65876a2 (patch)
tree84388015bd5ba7c4d01fc256d8fb6a2f3d2a93a9
parent5cd342df96e911fb8135fb3d58f33c2c5af9ffab (diff)
[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 <davem@davemloft.net>
-rw-r--r--arch/sparc64/kernel/mdesc.c4
-rw-r--r--arch/sparc64/kernel/prom.c3
-rw-r--r--arch/sparc64/kernel/smp.c2
-rw-r--r--include/asm-sparc64/smp.h1
-rw-r--r--include/asm-sparc64/topology.h6
5 files changed, 12 insertions, 4 deletions
diff --git a/arch/sparc64/kernel/mdesc.c b/arch/sparc64/kernel/mdesc.c
index 1b5db4bc6b34..f0e16045fb16 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)
624 c->proc_id = -1; 624 c->proc_id = -1;
625 } 625 }
626 626
627#ifdef CONFIG_SMP
628 sparc64_multi_core = 1;
629#endif
630
627 set_core_ids(); 631 set_core_ids();
628 set_proc_ids(); 632 set_proc_ids();
629 633
diff --git a/arch/sparc64/kernel/prom.c b/arch/sparc64/kernel/prom.c
index 172387d1f660..6f4a5284b0ea 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)
1782 1782
1783 cpu_data(cpuid).core_id = portid + 1; 1783 cpu_data(cpuid).core_id = portid + 1;
1784 cpu_data(cpuid).proc_id = portid; 1784 cpu_data(cpuid).proc_id = portid;
1785#ifdef CONFIG_SMP
1786 sparc64_multi_core = 1;
1787#endif
1785 } else { 1788 } else {
1786 cpu_data(cpuid).dcache_size = 1789 cpu_data(cpuid).dcache_size =
1787 of_getintprop_default(dp, "dcache-size", 16 * 1024); 1790 of_getintprop_default(dp, "dcache-size", 16 * 1024);
diff --git a/arch/sparc64/kernel/smp.c b/arch/sparc64/kernel/smp.c
index 68a45ac93375..4dcd7d0b60f2 100644
--- a/arch/sparc64/kernel/smp.c
+++ b/arch/sparc64/kernel/smp.c
@@ -44,6 +44,8 @@
44 44
45extern void calibrate_delay(void); 45extern void calibrate_delay(void);
46 46
47int sparc64_multi_core __read_mostly;
48
47/* Please don't make this stuff initdata!!! --DaveM */ 49/* Please don't make this stuff initdata!!! --DaveM */
48unsigned char boot_cpu_id; 50unsigned char boot_cpu_id;
49 51
diff --git a/include/asm-sparc64/smp.h b/include/asm-sparc64/smp.h
index 540021268684..4fb8c4bfb848 100644
--- a/include/asm-sparc64/smp.h
+++ b/include/asm-sparc64/smp.h
@@ -34,6 +34,7 @@ extern cpumask_t phys_cpu_present_map;
34 34
35extern cpumask_t cpu_sibling_map[NR_CPUS]; 35extern cpumask_t cpu_sibling_map[NR_CPUS];
36extern cpumask_t cpu_core_map[NR_CPUS]; 36extern cpumask_t cpu_core_map[NR_CPUS];
37extern int sparc64_multi_core;
37 38
38/* 39/*
39 * General functions that each host system must provide. 40 * General functions that each host system must provide.
diff --git a/include/asm-sparc64/topology.h b/include/asm-sparc64/topology.h
index 4880f7ca0b60..290ac75f385b 100644
--- a/include/asm-sparc64/topology.h
+++ b/include/asm-sparc64/topology.h
@@ -2,14 +2,12 @@
2#define _ASM_SPARC64_TOPOLOGY_H 2#define _ASM_SPARC64_TOPOLOGY_H
3 3
4#ifdef CONFIG_SMP 4#ifdef CONFIG_SMP
5#include <asm/spitfire.h>
6
7#define topology_physical_package_id(cpu) (cpu_data(cpu).proc_id) 5#define topology_physical_package_id(cpu) (cpu_data(cpu).proc_id)
8#define topology_core_id(cpu) (cpu_data(cpu).core_id) 6#define topology_core_id(cpu) (cpu_data(cpu).core_id)
9#define topology_core_siblings(cpu) (cpu_core_map[cpu]) 7#define topology_core_siblings(cpu) (cpu_core_map[cpu])
10#define topology_thread_siblings(cpu) (cpu_sibling_map[cpu]) 8#define topology_thread_siblings(cpu) (cpu_sibling_map[cpu])
11#define mc_capable() (tlb_type == hypervisor) 9#define mc_capable() (sparc64_multi_core)
12#define smt_capable() (tlb_type == hypervisor) 10#define smt_capable() (sparc64_multi_core)
13#endif /* CONFIG_SMP */ 11#endif /* CONFIG_SMP */
14 12
15#include <asm-generic/topology.h> 13#include <asm-generic/topology.h>