aboutsummaryrefslogtreecommitdiffstats
path: root/arch/parisc/kernel/firmware.c
diff options
context:
space:
mode:
authorSven Schnelle <svens@stackframe.org>2019-09-08 11:33:03 +0200
committerHelge Deller <deller@gmx.de>2019-09-08 15:19:58 +0200
commit507efd63d98c4437d62bbfa932b322e72723e1fc (patch)
tree6c9d7283f37f68b9153e0025b1703fa01b69d820 /arch/parisc/kernel/firmware.c
parentkprobes/parisc: remove arch_kprobe_on_func_entry() (diff)
downloadlinux-dev-507efd63d98c4437d62bbfa932b322e72723e1fc.tar.xz
linux-dev-507efd63d98c4437d62bbfa932b322e72723e1fc.zip
parisc: add __pdc_cpu_rendezvous()
When stopping SMP cpus send them into rendezvous, so we can start them again later (when kexec'ing a new kernel). Signed-off-by: Sven Schnelle <svens@stackframe.org> Signed-off-by: Helge Deller <deller@gmx.de>
Diffstat (limited to 'arch/parisc/kernel/firmware.c')
-rw-r--r--arch/parisc/kernel/firmware.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/arch/parisc/kernel/firmware.c b/arch/parisc/kernel/firmware.c
index 58cc08e7fd12..1d976f2ebff0 100644
--- a/arch/parisc/kernel/firmware.c
+++ b/arch/parisc/kernel/firmware.c
@@ -312,6 +312,19 @@ int pdc_chassis_disp(unsigned long disp)
}
/**
+ * pdc_cpu_rendenzvous - Stop currently executing CPU
+ * @retval: -1 on error, 0 on success
+ */
+int __pdc_cpu_rendezvous(void)
+{
+ if (is_pdc_pat())
+ return mem_pdc_call(PDC_PAT_CPU, PDC_PAT_CPU_RENDEZVOUS);
+ else
+ return mem_pdc_call(PDC_PROC, 1, 0);
+}
+
+
+/**
* pdc_chassis_warn - Fetches chassis warnings
* @retval: -1 on error, 0 on success
*/