The core device API performs extra housekeeping bits that are missing from directly calling cpu_up/down. See commit a6717c01ddc2 ("powerpc/rtas: use device model APIs and serialization during LPM") for an example description of what might go wrong. This also prepares to make cpu_up/down a private interface for anything but the cpu subsystem. Acked-by: Helge Deller <deller@xxxxxx> Signed-off-by: Qais Yousef <qais.yousef@xxxxxxx> CC: "James E.J. Bottomley" <James.Bottomley@xxxxxxxxxxxxxxxxxxxxx> CC: Helge Deller <deller@xxxxxx> CC: Richard Fontana <rfontana@xxxxxxxxxx> CC: Armijn Hemel <armijn@xxxxxxxxxx> CC: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx> CC: Thomas Gleixner <tglx@xxxxxxxxxxxxx> CC: linux-parisc@xxxxxxxxxxxxxxx CC: linux-kernel@xxxxxxxxxxxxxxx --- Helge, this now uses add_cpu() which you should be CCed on. I wasn't sure if I can keep your Ack or remove it in this case. Please let me know if you need more clarification. arch/parisc/kernel/processor.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/parisc/kernel/processor.c b/arch/parisc/kernel/processor.c index 13f771f74ee3..7f2d0c0ecc80 100644 --- a/arch/parisc/kernel/processor.c +++ b/arch/parisc/kernel/processor.c @@ -212,7 +212,7 @@ static int __init processor_probe(struct parisc_device *dev) #ifdef CONFIG_SMP if (cpuid) { set_cpu_present(cpuid, true); - cpu_up(cpuid); + add_cpu(cpuid); } #endif -- 2.17.1