diff options
Diffstat (limited to 'arch')
-rw-r--r-- | arch/arm/Kconfig | 2 | ||||
-rw-r--r-- | arch/arm/kernel/smp.c | 4 |
2 files changed, 5 insertions, 1 deletions
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig index 4b01d71bdbd1..abba5b8c9d74 100644 --- a/arch/arm/Kconfig +++ b/arch/arm/Kconfig | |||
@@ -2001,7 +2001,7 @@ config XIP_PHYS_ADDR | |||
2001 | 2001 | ||
2002 | config KEXEC | 2002 | config KEXEC |
2003 | bool "Kexec system call (EXPERIMENTAL)" | 2003 | bool "Kexec system call (EXPERIMENTAL)" |
2004 | depends on EXPERIMENTAL | 2004 | depends on EXPERIMENTAL && (!SMP || HOTPLUG_CPU) |
2005 | help | 2005 | help |
2006 | kexec is a system call that implements the ability to shutdown your | 2006 | kexec is a system call that implements the ability to shutdown your |
2007 | current kernel, and to start another kernel. It is like a reboot | 2007 | current kernel, and to start another kernel. It is like a reboot |
diff --git a/arch/arm/kernel/smp.c b/arch/arm/kernel/smp.c index 76ff28d87bf3..57db122a4f62 100644 --- a/arch/arm/kernel/smp.c +++ b/arch/arm/kernel/smp.c | |||
@@ -522,6 +522,10 @@ static void ipi_cpu_stop(unsigned int cpu) | |||
522 | local_fiq_disable(); | 522 | local_fiq_disable(); |
523 | local_irq_disable(); | 523 | local_irq_disable(); |
524 | 524 | ||
525 | #ifdef CONFIG_HOTPLUG_CPU | ||
526 | platform_cpu_kill(cpu); | ||
527 | #endif | ||
528 | |||
525 | while (1) | 529 | while (1) |
526 | cpu_relax(); | 530 | cpu_relax(); |
527 | } | 531 | } |