Re: [PATCH 06/12] parisc: Replace cpu_up/down with device_online/offline

From: Helge Deller
Date: Fri Nov 22 2019 - 14:51:27 EST


On 20.11.19 12:09, Qais Yousef wrote:
> 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.

I pulled your cpu-hp-cleanup branch from git://linux-arm.org/linux-qy
and compiled a 32- and a 64-bit parisc kernel.

I faced one compile warning:
linux-2.6/kernel/cpu.c: In function âhibernation_bringup_sleep_cpuâ:
linux-2.6/kernel/cpu.c:1237:1: warning: control reaches end of non-void function [-Wreturn-type]

Other than that the 32- and 64-bit SMP kernel booted nicely.
You may add to the series:
Acked-by: Helge Deller <deller@xxxxxx> # parisc

Thanks,
Helge


>>
>> 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
>>