|
@@ -1856,7 +1856,7 @@ struct pcpu_alloc_info * __init pcpu_alloc_alloc_info(int nr_groups,
|
|
|
__alignof__(ai->groups[0].cpu_map[0]));
|
|
|
ai_size = base_size + nr_units * sizeof(ai->groups[0].cpu_map[0]);
|
|
|
|
|
|
- ptr = memblock_virt_alloc_nopanic(PFN_ALIGN(ai_size), 0);
|
|
|
+ ptr = memblock_virt_alloc_nopanic(PFN_ALIGN(ai_size), PAGE_SIZE);
|
|
|
if (!ptr)
|
|
|
return NULL;
|
|
|
ai = ptr;
|
|
@@ -2719,6 +2719,7 @@ void __init setup_per_cpu_areas(void)
|
|
|
|
|
|
if (pcpu_setup_first_chunk(ai, fc) < 0)
|
|
|
panic("Failed to initialize percpu areas.");
|
|
|
+ pcpu_free_alloc_info(ai);
|
|
|
}
|
|
|
|
|
|
#endif /* CONFIG_SMP */
|