aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom Goetz <[email protected]>2011-05-16 15:06:26 -0400
committerKonrad Rzeszutek Wilk <[email protected]>2011-06-15 16:48:29 -0400
commitb2abe50688dcb470e2e46109da7e7e02245ed59b (patch)
tree34bb9dd8833b93ef986aed3492dc92be6de539fc
parentb5328cd14557880e9eb757a8a9c8a88f1b23533a (diff)
xen: When calling power_off, don't call the halt function.
.. As it won't actually power off the machine. Reported-by: Sven Köhler <[email protected]> Tested-by: Sven Köhler <[email protected]> Signed-off-by: Tom Goetz <[email protected]> Signed-off-by: Konrad Rzeszutek Wilk <[email protected]>
-rw-r--r--arch/x86/xen/enlighten.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/arch/x86/xen/enlighten.c b/arch/x86/xen/enlighten.c
index dd7b88f2ec7a..5525163a0398 100644
--- a/arch/x86/xen/enlighten.c
+++ b/arch/x86/xen/enlighten.c
@@ -1033,6 +1033,13 @@ static void xen_machine_halt(void)
xen_reboot(SHUTDOWN_poweroff);
}
+static void xen_machine_power_off(void)
+{
+ if (pm_power_off)
+ pm_power_off();
+ xen_reboot(SHUTDOWN_poweroff);
+}
+
static void xen_crash_shutdown(struct pt_regs *regs)
{
xen_reboot(SHUTDOWN_crash);
@@ -1058,7 +1065,7 @@ int xen_panic_handler_init(void)
static const struct machine_ops xen_machine_ops __initconst = {
.restart = xen_restart,
.halt = xen_machine_halt,
- .power_off = xen_machine_halt,
+ .power_off = xen_machine_power_off,
.shutdown = xen_machine_halt,
.crash_shutdown = xen_crash_shutdown,
.emergency_restart = xen_emergency_restart,