diff options
author | Horms <horms@verge.net.au> | 2007-02-05 13:49:10 -0800 |
---|---|---|
committer | Tony Luck <tony.luck@intel.com> | 2007-02-05 13:49:10 -0800 |
commit | c237508afa5d47282d3047784864013eebdc68ab (patch) | |
tree | 8fb1cfe0928995cb81a6d6456366f77fe9a5fc06 /arch/ia64/kernel/process.c | |
parent | 9473252f20e8482464415d9030b3957b5593796d (diff) | |
download | linux-c237508afa5d47282d3047784864013eebdc68ab.tar.gz linux-c237508afa5d47282d3047784864013eebdc68ab.tar.bz2 linux-c237508afa5d47282d3047784864013eebdc68ab.zip |
[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.c | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/arch/ia64/kernel/process.c b/arch/ia64/kernel/process.c index 17685abaf496..ae96d4176995 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) { |