aboutsummaryrefslogtreecommitdiffstats
path: root/arch/parisc/include/asm/smp.h
diff options
context:
space:
mode:
authorHelge Deller <deller@gmx.de>2022-03-25 14:31:08 +0100
committerHelge Deller <deller@gmx.de>2022-03-29 21:37:12 +0200
commit88b3aac6228baaac6a3bcc0808845083b9d9f08f (patch)
tree35090d471f95c2b811a24233c753c49241dc8af0 /arch/parisc/include/asm/smp.h
parentparisc: Add PDC locking functions for rendezvous code (diff)
downloadlinux-dev-88b3aac6228baaac6a3bcc0808845083b9d9f08f.tar.xz
linux-dev-88b3aac6228baaac6a3bcc0808845083b9d9f08f.zip
parisc: Implement __cpu_die() and __cpu_disable() for CPU hotplugging
Add relevant code to __cpu_die() and __cpu_disable() to finally enable the CPU hotplugging features. Reset the irq count values in smp_callin() to zero before bringing up the CPU. It seems that the firmware may need up to 8 seconds to fully stop a CPU in which no other PDC calls are allowed to be made. Use a timeout __cpu_die() to accommodate for this. Use "chcpu -d 1" to bring CPU1 down, and "chcpu -e 1" to bring it up. Signed-off-by: Helge Deller <deller@gmx.de>
Diffstat (limited to 'arch/parisc/include/asm/smp.h')
-rw-r--r--arch/parisc/include/asm/smp.h9
1 files changed, 2 insertions, 7 deletions
diff --git a/arch/parisc/include/asm/smp.h b/arch/parisc/include/asm/smp.h
index 2279ebe5e2da..94d1f21ce99a 100644
--- a/arch/parisc/include/asm/smp.h
+++ b/arch/parisc/include/asm/smp.h
@@ -44,12 +44,7 @@ static inline void smp_send_all_nop(void) { return; }
#define NO_PROC_ID 0xFF /* No processor magic marker */
#define ANY_PROC_ID 0xFF /* Any processor magic marker */
-static inline int __cpu_disable (void) {
- return 0;
-}
-static inline void __cpu_die (unsigned int cpu) {
- while(1)
- ;
-}
+int __cpu_disable(void);
+void __cpu_die(unsigned int cpu);
#endif /* __ASM_SMP_H */