mirror of
https://github.com/torvalds/linux.git
synced 2024-11-17 09:31:50 +00:00
x86: cpu/common*.c, merge detect_ht()
Signed-off-by: Yinghai Lu <yhlu.kernel@gmail.com> Signed-off-by: Ingo Molnar <mingo@elte.hu>
This commit is contained in:
parent
140fc72709
commit
1cd78776c7
@ -330,6 +330,9 @@ void __cpuinit detect_ht(struct cpuinfo_x86 *c)
|
||||
if (cpu_has(c, X86_FEATURE_CMP_LEGACY))
|
||||
goto out;
|
||||
|
||||
if (cpu_has(c, X86_FEATURE_XTOPOLOGY))
|
||||
return;
|
||||
|
||||
cpuid(1, &eax, &ebx, &ecx, &edx);
|
||||
|
||||
smp_num_siblings = (ebx & 0xff0000) >> 16;
|
||||
@ -346,8 +349,11 @@ void __cpuinit detect_ht(struct cpuinfo_x86 *c)
|
||||
}
|
||||
|
||||
index_msb = get_count_order(smp_num_siblings);
|
||||
#ifdef CONFIG_X86_64
|
||||
c->phys_proc_id = phys_pkg_id(index_msb);
|
||||
#else
|
||||
c->phys_proc_id = phys_pkg_id(c->initial_apicid, index_msb);
|
||||
|
||||
#endif
|
||||
|
||||
smp_num_siblings = smp_num_siblings / c->x86_max_cores;
|
||||
|
||||
@ -355,8 +361,13 @@ void __cpuinit detect_ht(struct cpuinfo_x86 *c)
|
||||
|
||||
core_bits = get_count_order(c->x86_max_cores);
|
||||
|
||||
#ifdef CONFIG_X86_64
|
||||
c->cpu_core_id = phys_pkg_id(index_msb) &
|
||||
((1 << core_bits) - 1);
|
||||
#else
|
||||
c->cpu_core_id = phys_pkg_id(c->initial_apicid, index_msb) &
|
||||
((1 << core_bits) - 1);
|
||||
#endif
|
||||
}
|
||||
|
||||
out:
|
||||
|
@ -349,7 +349,11 @@ void __cpuinit detect_ht(struct cpuinfo_x86 *c)
|
||||
}
|
||||
|
||||
index_msb = get_count_order(smp_num_siblings);
|
||||
#ifdef CONFIG_X86_64
|
||||
c->phys_proc_id = phys_pkg_id(index_msb);
|
||||
#else
|
||||
c->phys_proc_id = phys_pkg_id(c->initial_apicid, index_msb);
|
||||
#endif
|
||||
|
||||
smp_num_siblings = smp_num_siblings / c->x86_max_cores;
|
||||
|
||||
@ -357,8 +361,13 @@ void __cpuinit detect_ht(struct cpuinfo_x86 *c)
|
||||
|
||||
core_bits = get_count_order(c->x86_max_cores);
|
||||
|
||||
#ifdef CONFIG_X86_64
|
||||
c->cpu_core_id = phys_pkg_id(index_msb) &
|
||||
((1 << core_bits) - 1);
|
||||
#else
|
||||
c->cpu_core_id = phys_pkg_id(c->initial_apicid, index_msb) &
|
||||
((1 << core_bits) - 1);
|
||||
#endif
|
||||
}
|
||||
|
||||
out:
|
||||
|
Loading…
Reference in New Issue
Block a user