|
@@ -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,
|