diff options
Diffstat (limited to 'arch/powerpc/kernel/setup-common.c')
-rw-r--r-- | arch/powerpc/kernel/setup-common.c | 20 |
1 files changed, 16 insertions, 4 deletions
diff --git a/arch/powerpc/kernel/setup-common.c b/arch/powerpc/kernel/setup-common.c index 36c90ba2d312..2de00f870edc 100644 --- a/arch/powerpc/kernel/setup-common.c +++ b/arch/powerpc/kernel/setup-common.c | |||
@@ -413,16 +413,28 @@ void __init smp_setup_cpu_maps(void) | |||
413 | of_node_put(dn); | 413 | of_node_put(dn); |
414 | } | 414 | } |
415 | 415 | ||
416 | vdso_data->processorCount = num_present_cpus(); | ||
417 | #endif /* CONFIG_PPC64 */ | ||
418 | } | ||
419 | |||
420 | /* | ||
421 | * Being that cpu_sibling_map is now a per_cpu array, then it cannot | ||
422 | * be initialized until the per_cpu areas have been created. This | ||
423 | * function is now called from setup_per_cpu_areas(). | ||
424 | */ | ||
425 | void __init smp_setup_cpu_sibling_map(void) | ||
426 | { | ||
427 | #if defined(CONFIG_PPC64) | ||
428 | int cpu; | ||
429 | |||
416 | /* | 430 | /* |
417 | * Do the sibling map; assume only two threads per processor. | 431 | * Do the sibling map; assume only two threads per processor. |
418 | */ | 432 | */ |
419 | for_each_possible_cpu(cpu) { | 433 | for_each_possible_cpu(cpu) { |
420 | cpu_set(cpu, cpu_sibling_map[cpu]); | 434 | cpu_set(cpu, per_cpu(cpu_sibling_map, cpu)); |
421 | if (cpu_has_feature(CPU_FTR_SMT)) | 435 | if (cpu_has_feature(CPU_FTR_SMT)) |
422 | cpu_set(cpu ^ 0x1, cpu_sibling_map[cpu]); | 436 | cpu_set(cpu ^ 0x1, per_cpu(cpu_sibling_map, cpu)); |
423 | } | 437 | } |
424 | |||
425 | vdso_data->processorCount = num_present_cpus(); | ||
426 | #endif /* CONFIG_PPC64 */ | 438 | #endif /* CONFIG_PPC64 */ |
427 | } | 439 | } |
428 | #endif /* CONFIG_SMP */ | 440 | #endif /* CONFIG_SMP */ |