Commit a2f9f6bb authored by David S. Miller's avatar David S. Miller Committed by David S. Miller

[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: default avatarDavid S. Miller <davem@davemloft.net>
parent 5cd342df
...@@ -624,6 +624,10 @@ static void __init mdesc_fill_in_cpu_data(void) ...@@ -624,6 +624,10 @@ static void __init mdesc_fill_in_cpu_data(void)
c->proc_id = -1; c->proc_id = -1;
} }
#ifdef CONFIG_SMP
sparc64_multi_core = 1;
#endif
set_core_ids(); set_core_ids();
set_proc_ids(); set_proc_ids();
......
...@@ -1782,6 +1782,9 @@ static void __init of_fill_in_cpu_data(void) ...@@ -1782,6 +1782,9 @@ static void __init of_fill_in_cpu_data(void)
cpu_data(cpuid).core_id = portid + 1; cpu_data(cpuid).core_id = portid + 1;
cpu_data(cpuid).proc_id = portid; cpu_data(cpuid).proc_id = portid;
#ifdef CONFIG_SMP
sparc64_multi_core = 1;
#endif
} else { } else {
cpu_data(cpuid).dcache_size = cpu_data(cpuid).dcache_size =
of_getintprop_default(dp, "dcache-size", 16 * 1024); of_getintprop_default(dp, "dcache-size", 16 * 1024);
......
...@@ -44,6 +44,8 @@ ...@@ -44,6 +44,8 @@
extern void calibrate_delay(void); extern void calibrate_delay(void);
int sparc64_multi_core __read_mostly;
/* Please don't make this stuff initdata!!! --DaveM */ /* Please don't make this stuff initdata!!! --DaveM */
unsigned char boot_cpu_id; unsigned char boot_cpu_id;
......
...@@ -34,6 +34,7 @@ extern cpumask_t phys_cpu_present_map; ...@@ -34,6 +34,7 @@ extern cpumask_t phys_cpu_present_map;
extern cpumask_t cpu_sibling_map[NR_CPUS]; extern cpumask_t cpu_sibling_map[NR_CPUS];
extern cpumask_t cpu_core_map[NR_CPUS]; extern cpumask_t cpu_core_map[NR_CPUS];
extern int sparc64_multi_core;
/* /*
* General functions that each host system must provide. * General functions that each host system must provide.
......
...@@ -2,14 +2,12 @@ ...@@ -2,14 +2,12 @@
#define _ASM_SPARC64_TOPOLOGY_H #define _ASM_SPARC64_TOPOLOGY_H
#ifdef CONFIG_SMP #ifdef CONFIG_SMP
#include <asm/spitfire.h>
#define topology_physical_package_id(cpu) (cpu_data(cpu).proc_id) #define topology_physical_package_id(cpu) (cpu_data(cpu).proc_id)
#define topology_core_id(cpu) (cpu_data(cpu).core_id) #define topology_core_id(cpu) (cpu_data(cpu).core_id)
#define topology_core_siblings(cpu) (cpu_core_map[cpu]) #define topology_core_siblings(cpu) (cpu_core_map[cpu])
#define topology_thread_siblings(cpu) (cpu_sibling_map[cpu]) #define topology_thread_siblings(cpu) (cpu_sibling_map[cpu])
#define mc_capable() (tlb_type == hypervisor) #define mc_capable() (sparc64_multi_core)
#define smt_capable() (tlb_type == hypervisor) #define smt_capable() (sparc64_multi_core)
#endif /* CONFIG_SMP */ #endif /* CONFIG_SMP */
#include <asm-generic/topology.h> #include <asm-generic/topology.h>
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment