powerpc: Add smp_generic_cpu_bootable
Cell and PSeries both implemented their own versions of a cpu_bootable smp_op which do the same thing (well, the PSeries one has support for more than 2 threads). Copy the PSeries one to generic code, and rename it smp_generic_cpu_bootable. Signed-off-by: Andy Fleming <afleming@freescale.com> Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
This commit is contained in:
parent
3b04c30007
commit
3cd8525023
|
@ -186,6 +186,8 @@ extern int smt_enabled_at_boot;
|
|||
extern int smp_mpic_probe(void);
|
||||
extern void smp_mpic_setup_cpu(int cpu);
|
||||
extern int smp_generic_kick_cpu(int nr);
|
||||
extern int smp_generic_cpu_bootable(unsigned int nr);
|
||||
|
||||
|
||||
extern void smp_generic_give_timebase(void);
|
||||
extern void smp_generic_take_timebase(void);
|
||||
|
|
|
@ -81,6 +81,28 @@ int smt_enabled_at_boot = 1;
|
|||
|
||||
static void (*crash_ipi_function_ptr)(struct pt_regs *) = NULL;
|
||||
|
||||
/*
|
||||
* Returns 1 if the specified cpu should be brought up during boot.
|
||||
* Used to inhibit booting threads if they've been disabled or
|
||||
* limited on the command line
|
||||
*/
|
||||
int smp_generic_cpu_bootable(unsigned int nr)
|
||||
{
|
||||
/* Special case - we inhibit secondary thread startup
|
||||
* during boot if the user requests it.
|
||||
*/
|
||||
if (system_state == SYSTEM_BOOTING && cpu_has_feature(CPU_FTR_SMT)) {
|
||||
if (!smt_enabled_at_boot && cpu_thread_in_core(nr) != 0)
|
||||
return 0;
|
||||
if (smt_enabled_at_boot
|
||||
&& cpu_thread_in_core(nr) >= smt_enabled_at_boot)
|
||||
return 0;
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
||||
#ifdef CONFIG_PPC64
|
||||
int smp_generic_kick_cpu(int nr)
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue