aboutsummaryrefslogtreecommitdiffstats
path: root/arch/ia64/kernel/process.c
diff options
context:
space:
mode:
authorHorms <horms@verge.net.au>2007-02-05 13:49:10 -0800
committerTony Luck <tony.luck@intel.com>2007-02-05 13:49:10 -0800
commitc237508afa5d47282d3047784864013eebdc68ab (patch)
tree8fb1cfe0928995cb81a6d6456366f77fe9a5fc06 /arch/ia64/kernel/process.c
parent9473252f20e8482464415d9030b3957b5593796d (diff)
downloadkernel_samsung_smdk4412-c237508afa5d47282d3047784864013eebdc68ab.zip
kernel_samsung_smdk4412-c237508afa5d47282d3047784864013eebdc68ab.tar.gz
kernel_samsung_smdk4412-c237508afa5d47282d3047784864013eebdc68ab.tar.bz2
[IA64] kexec: Move machine_shutdown from machine_kexec.c to process.c
This moves the ia64 implementation of machine_shutdown() from machine_kexec.c to process.c, which is in keeping with the implelmentation on other architectures, and seems like a much more appropriate home for it. Signed-off-by: Simon Horman <horms@verge.net.au> Signed-off-by: Tony Luck <tony.luck@intel.com>
Diffstat (limited to 'arch/ia64/kernel/process.c')
-rw-r--r--arch/ia64/kernel/process.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/arch/ia64/kernel/process.c b/arch/ia64/kernel/process.c
index 17685ab..ae96d41 100644
--- a/arch/ia64/kernel/process.c
+++ b/arch/ia64/kernel/process.c
@@ -34,6 +34,7 @@
#include <asm/ia32.h>
#include <asm/irq.h>
#include <asm/kdebug.h>
+#include <asm/kexec.h>
#include <asm/pgalloc.h>
#include <asm/processor.h>
#include <asm/sal.h>
@@ -803,6 +804,21 @@ cpu_halt (void)
ia64_pal_halt(min_power_state);
}
+void machine_shutdown(void)
+{
+#ifdef CONFIG_HOTPLUG_CPU
+ int cpu;
+
+ for_each_online_cpu(cpu) {
+ if (cpu != smp_processor_id())
+ cpu_down(cpu);
+ }
+#endif
+#ifdef CONFIG_KEXEC
+ kexec_disable_iosapic();
+#endif
+}
+
void
machine_restart (char *restart_cmd)
{