powerpc: Set nr_cpu_ids early and use it to free PACAs
PATCH 1/1 powerpc: Set nr_cpu_ids early and use it to free PACAs
From: Ryan Grimm <[email protected]>
Without this, "holes" in the CPU numbering can cause us to free too many PACAs
Signed-off-by Benjamin Herrenschmidt <[email protected]>
--- arch/powerpc/kernel/paca.c | 2 +- arch/powerpc/kernel/setup-common.c | 3 +++ 2 files changed, 4 insertions(+), 1 deletions(-)
arch/powerpc/kernel/paca.c +1 -1
@@ -203,7 +203,7 @@ void __init free_unused_pacas(void) {int new_size; - new_size =PAGE_ALIGN (sizeof (struct paca_struct ) *num_possible_cpus ()); + new_size =PAGE_ALIGN (sizeof (struct paca_struct ) * nr_cpu_ids);if (new_size >= paca_size)return ;
arch/powerpc/kernel/setup-common.c +3 -0
@@ -509,6 +509,9 @@ void __init smp_setup_cpu_maps(void)*/ cpu_init_thread_core_maps (nthreads); +/* Now that possible cpus are set, set nr_cpu_ids for later use */ + nr_cpu_ids =find_last_bit (cpumask_bits (cpu_possible_mask),NR_CPUS ) +1 ; + free_unused_pacas(); }#endif /* CONFIG_SMP */