powerpc/pseries: use slab context cpumask allocation in CPU hotplug init
authorNicholas Piggin <npiggin@gmail.com>
Fri, 5 Nov 2021 13:29:23 +0000 (23:29 +1000)
committerMichael Ellerman <mpe@ellerman.id.au>
Thu, 16 Dec 2021 10:31:46 +0000 (21:31 +1100)
Slab is up at this point, using the bootmem allocator triggers a
warning. Switch to using the regular cpumask allocator.

Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
Tested-by: Sachin Sant <sachinp@linux.vnet.ibm.com>
Reviewed-by: Nathan Lynch <nathanl@linux.ibm.com>
Reviewed-by: Laurent Dufour <ldufour@linux.ibm.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/20211105132923.1582514-1-npiggin@gmail.com
arch/powerpc/platforms/pseries/hotplug-cpu.c

index 5ab44600c8d33e22f47d519af34adf3a81475f61..b81fc846d99cfdbd45f0698de871cd3ce0177965 100644 (file)
@@ -864,12 +864,13 @@ static int __init pseries_cpu_hotplug_init(void)
        /* Processors can be added/removed only on LPAR */
        if (firmware_has_feature(FW_FEATURE_LPAR)) {
                for_each_node(node) {
-                       alloc_bootmem_cpumask_var(&node_recorded_ids_map[node]);
+                       if (!alloc_cpumask_var_node(&node_recorded_ids_map[node],
+                                                   GFP_KERNEL, node))
+                               return -ENOMEM;
 
                        /* Record ids of CPU added at boot time */
-                       cpumask_or(node_recorded_ids_map[node],
-                                  node_recorded_ids_map[node],
-                                  cpumask_of_node(node));
+                       cpumask_copy(node_recorded_ids_map[node],
+                                    cpumask_of_node(node));
                }
 
                of_reconfig_notifier_register(&pseries_smp_nb);