num_available_cores callback will update the current number of available cores. If num_available_cores() callback is not defined, then assume all cores are available.
Signed-off-by: Srikar Dronamraju <[email protected]> --- arch/powerpc/include/asm/smp.h | 3 +++ arch/powerpc/kernel/smp.c | 5 +++++ 2 files changed, 8 insertions(+) diff --git a/arch/powerpc/include/asm/smp.h b/arch/powerpc/include/asm/smp.h index e41b9ea42122..fe6315057474 100644 --- a/arch/powerpc/include/asm/smp.h +++ b/arch/powerpc/include/asm/smp.h @@ -60,6 +60,9 @@ struct smp_ops_t { #ifdef CONFIG_HOTPLUG_CPU void (*cpu_offline_self)(void); #endif +#ifdef CONFIG_PPC_SPLPAR + unsigned int (*num_available_cores)(void); +#endif }; extern struct task_struct *secondary_current; diff --git a/arch/powerpc/kernel/smp.c b/arch/powerpc/kernel/smp.c index 68edb66c2964..c33e9928a2b0 100644 --- a/arch/powerpc/kernel/smp.c +++ b/arch/powerpc/kernel/smp.c @@ -1732,6 +1732,11 @@ void __init smp_cpus_done(unsigned int max_cpus) dump_numa_cpu_topology(); build_sched_topology(); + +#ifdef CONFIG_PPC_SPLPAR + if (smp_ops->num_available_cores) + smp_ops->num_available_cores(); +#endif } /* -- 2.43.7
