Messages in this thread Patch in this message | | | From | Qais Yousef <> | Subject | [PATCH 03/12] powerpc: Replace cpu_up/down with device_online/offline | Date | Wed, 30 Oct 2019 15:38:28 +0000 |
| |
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@arm.com> CC: Benjamin Herrenschmidt <benh@kernel.crashing.org> CC: Paul Mackerras <paulus@samba.org> CC: Michael Ellerman <mpe@ellerman.id.au> CC: Enrico Weigelt <info@metux.net> CC: Ram Pai <linuxram@us.ibm.com> CC: Nicholas Piggin <npiggin@gmail.com> CC: Thiago Jung Bauermann <bauerman@linux.ibm.com> CC: Christophe Leroy <christophe.leroy@c-s.fr> CC: Thomas Gleixner <tglx@linutronix.de> CC: linuxppc-dev@lists.ozlabs.org CC: linux-kernel@vger.kernel.org --- arch/powerpc/kernel/machine_kexec_64.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/arch/powerpc/kernel/machine_kexec_64.c b/arch/powerpc/kernel/machine_kexec_64.c index 04a7cba58eff..ebf8cc7acc4d 100644 --- a/arch/powerpc/kernel/machine_kexec_64.c +++ b/arch/powerpc/kernel/machine_kexec_64.c @@ -208,13 +208,15 @@ static void wake_offline_cpus(void) { int cpu = 0; + lock_device_hotplug(); for_each_present_cpu(cpu) { if (!cpu_online(cpu)) { printk(KERN_INFO "kexec: Waking offline cpu %d.\n", cpu); - WARN_ON(cpu_up(cpu)); + WARN_ON(device_online(get_cpu_device(cpu))); } } + unlock_device_hotplug(); } static void kexec_prepare_cpus(void) -- 2.17.1
| |