x86: call machine_shutdown and stop all CPUs in native_machine_halt
authorIvan Vecera <ivecera@redhat.com>
Tue, 11 Nov 2008 13:33:44 +0000 (14:33 +0100)
committerIngo Molnar <mingo@elte.hu>
Tue, 11 Nov 2008 13:50:02 +0000 (14:50 +0100)
commitd3ec5cae0921611ceae06464ef6291012dd9849f
tree81a84f184f9047b12895bbd91c1e8b1ff2e076f0
parent3ad4f597058301c97f362e500a32f63f5c950a45
x86: call machine_shutdown and stop all CPUs in native_machine_halt

Impact: really halt all CPUs on halt

Function machine_halt (resp. native_machine_halt) is empty for x86
architectures. When command 'halt -f' is invoked, the message "System
halted." is displayed but this is not really true because all CPUs are
still running.

There are also similar inconsistencies for other arches (some uses
power-off for halt or forever-loop with IRQs enabled/disabled).

IMO there should be used the same approach for all architectures OR
what does the message "System halted" really mean?

This patch fixes it for x86.

Signed-off-by: Ivan Vecera <ivecera@redhat.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
arch/x86/include/asm/apic.h
arch/x86/include/asm/system.h
arch/x86/kernel/process.c
arch/x86/kernel/reboot.c
arch/x86/kernel/smp.c