x86: fix amd_detect_cmp
authorYinghai Lu <yhlu.kernel@gmail.com>
Thu, 6 Mar 2008 09:11:11 +0000 (01:11 -0800)
committerIngo Molnar <mingo@elte.hu>
Thu, 17 Apr 2008 15:40:57 +0000 (17:40 +0200)
commita7062211865efb53cda253d6e33a106f0fe20ebe
treead3384e1304ebe8de4e5caa2fee20fb843d8ff61
parent97b44ae6cd8117212d41bedc433b5571ee3b79d9
x86: fix amd_detect_cmp

for system with apicid lifting, boot cpu apicid will be 4

got:

  CPU: L1 I Cache: 64K (64 bytes/line), D cache 64K (64 bytes/line)
  CPU: L2 Cache: 512K (64 bytes/line)
  CPU 0/4 -> Node 0
  CPU: Physical Processor ID: 1
  CPU: Processor Core ID: 0

so try to offset apicid back before get phys_proc_id with bits shift.
then we can get correct socket ID

also remove remove cpu_data(0) reference.

because cpu_data(0) only be ready after smp_prepare_cpus with the assignment
from boot_cpu_data to current_cpu_data aka cpu_data(0).

and check_bugs()==>identify_cpu(&boot_cpu_data) is quite before than
smp_prepare_cpus. So just use boot_cpu_id instead.

Signed-off-by: Yinghai Lu <yhlu.kernel@gmail.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
arch/x86/kernel/setup_64.c