On 10/30/19 15:38, Qais Yousef wrote: > 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. > > 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 > --- > > Couldn't compile test this one. > > I'm not confident that this is a correct patch to be honest. This __init > indicates we're booting the secondary cpus and that might be too early in the > process to use the core API..? Helge, James Do you have any comment on this? I have no means to test it and I'd appreciate if you can spin it through one of your systems. Thanks -- Qais Yousef > > > arch/parisc/kernel/processor.c | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) > > diff --git a/arch/parisc/kernel/processor.c b/arch/parisc/kernel/processor.c > index 13f771f74ee3..4dde5fe78f0c 100644 > --- a/arch/parisc/kernel/processor.c > +++ b/arch/parisc/kernel/processor.c > @@ -212,7 +212,9 @@ static int __init processor_probe(struct parisc_device *dev) > #ifdef CONFIG_SMP > if (cpuid) { > set_cpu_present(cpuid, true); > - cpu_up(cpuid); > + lock_device_hotplug(); > + device_online(get_cpu_device(cpuid)); > + unlock_device_hotplug(); > } > #endif > > -- > 2.17.1 >