|
@@ -372,15 +372,15 @@ static bool __cpuinit match_mc(struct cpuinfo_x86 *c, struct cpuinfo_x86 *o)
|
|
|
|
|
|
void __cpuinit set_cpu_sibling_map(int cpu)
|
|
|
{
|
|
|
- bool has_mc = boot_cpu_data.x86_max_cores > 1;
|
|
|
bool has_smt = smp_num_siblings > 1;
|
|
|
+ bool has_mp = has_smt || boot_cpu_data.x86_max_cores > 1;
|
|
|
struct cpuinfo_x86 *c = &cpu_data(cpu);
|
|
|
struct cpuinfo_x86 *o;
|
|
|
int i;
|
|
|
|
|
|
cpumask_set_cpu(cpu, cpu_sibling_setup_mask);
|
|
|
|
|
|
- if (!has_smt && !has_mc) {
|
|
|
+ if (!has_mp) {
|
|
|
cpumask_set_cpu(cpu, cpu_sibling_mask(cpu));
|
|
|
cpumask_set_cpu(cpu, cpu_llc_shared_mask(cpu));
|
|
|
cpumask_set_cpu(cpu, cpu_core_mask(cpu));
|
|
@@ -394,7 +394,7 @@ void __cpuinit set_cpu_sibling_map(int cpu)
|
|
|
if ((i == cpu) || (has_smt && match_smt(c, o)))
|
|
|
link_mask(sibling, cpu, i);
|
|
|
|
|
|
- if ((i == cpu) || (has_mc && match_llc(c, o)))
|
|
|
+ if ((i == cpu) || (has_mp && match_llc(c, o)))
|
|
|
link_mask(llc_shared, cpu, i);
|
|
|
|
|
|
}
|
|
@@ -406,7 +406,7 @@ void __cpuinit set_cpu_sibling_map(int cpu)
|
|
|
for_each_cpu(i, cpu_sibling_setup_mask) {
|
|
|
o = &cpu_data(i);
|
|
|
|
|
|
- if ((i == cpu) || (has_mc && match_mc(c, o))) {
|
|
|
+ if ((i == cpu) || (has_mp && match_mc(c, o))) {
|
|
|
link_mask(core, cpu, i);
|
|
|
|
|
|
/*
|