diff options
Diffstat (limited to 'arch/i386/kernel/cpu/amd.c')
| -rw-r--r-- | arch/i386/kernel/cpu/amd.c | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/arch/i386/kernel/cpu/amd.c b/arch/i386/kernel/cpu/amd.c index 16dbc4151be4..73aeaf5a9d4e 100644 --- a/arch/i386/kernel/cpu/amd.c +++ b/arch/i386/kernel/cpu/amd.c | |||
| @@ -24,9 +24,6 @@ __asm__(".align 4\nvide: ret"); | |||
| 24 | 24 | ||
| 25 | static void __init init_amd(struct cpuinfo_x86 *c) | 25 | static void __init init_amd(struct cpuinfo_x86 *c) |
| 26 | { | 26 | { |
| 27 | #ifdef CONFIG_X86_SMP | ||
| 28 | int cpu = c == &boot_cpu_data ? 0 : c - cpu_data; | ||
| 29 | #endif | ||
| 30 | u32 l, h; | 27 | u32 l, h; |
| 31 | int mbytes = num_physpages >> (20-PAGE_SHIFT); | 28 | int mbytes = num_physpages >> (20-PAGE_SHIFT); |
| 32 | int r; | 29 | int r; |
| @@ -198,14 +195,19 @@ static void __init init_amd(struct cpuinfo_x86 *c) | |||
| 198 | c->x86_num_cores = 1; | 195 | c->x86_num_cores = 1; |
| 199 | } | 196 | } |
| 200 | 197 | ||
| 201 | #ifdef CONFIG_X86_SMP | 198 | #ifdef CONFIG_X86_HT |
| 202 | /* | 199 | /* |
| 203 | * On a AMD dual core setup the lower bits of the APIC id | 200 | * On a AMD dual core setup the lower bits of the APIC id |
| 204 | * distingush the cores. Assumes number of cores is a power | 201 | * distingush the cores. Assumes number of cores is a power |
| 205 | * of two. | 202 | * of two. |
| 206 | */ | 203 | */ |
| 207 | if (c->x86_num_cores > 1) { | 204 | if (c->x86_num_cores > 1) { |
| 208 | cpu_core_id[cpu] = cpu >> hweight32(c->x86_num_cores - 1); | 205 | int cpu = smp_processor_id(); |
| 206 | unsigned bits = 0; | ||
| 207 | while ((1 << bits) < c->x86_num_cores) | ||
| 208 | bits++; | ||
| 209 | cpu_core_id[cpu] = phys_proc_id[cpu] & ((1<<bits)-1); | ||
| 210 | phys_proc_id[cpu] >>= bits; | ||
| 209 | printk(KERN_INFO "CPU %d(%d) -> Core %d\n", | 211 | printk(KERN_INFO "CPU %d(%d) -> Core %d\n", |
| 210 | cpu, c->x86_num_cores, cpu_core_id[cpu]); | 212 | cpu, c->x86_num_cores, cpu_core_id[cpu]); |
| 211 | } | 213 | } |
