diff options
Diffstat (limited to 'arch/x86/xen/enlighten.c')
-rw-r--r-- | arch/x86/xen/enlighten.c | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/arch/x86/xen/enlighten.c b/arch/x86/xen/enlighten.c index dd7b88f2ec7..53257421082 100644 --- a/arch/x86/xen/enlighten.c +++ b/arch/x86/xen/enlighten.c | |||
@@ -1033,6 +1033,13 @@ static void xen_machine_halt(void) | |||
1033 | xen_reboot(SHUTDOWN_poweroff); | 1033 | xen_reboot(SHUTDOWN_poweroff); |
1034 | } | 1034 | } |
1035 | 1035 | ||
1036 | static void xen_machine_power_off(void) | ||
1037 | { | ||
1038 | if (pm_power_off) | ||
1039 | pm_power_off(); | ||
1040 | xen_reboot(SHUTDOWN_poweroff); | ||
1041 | } | ||
1042 | |||
1036 | static void xen_crash_shutdown(struct pt_regs *regs) | 1043 | static void xen_crash_shutdown(struct pt_regs *regs) |
1037 | { | 1044 | { |
1038 | xen_reboot(SHUTDOWN_crash); | 1045 | xen_reboot(SHUTDOWN_crash); |
@@ -1058,7 +1065,7 @@ int xen_panic_handler_init(void) | |||
1058 | static const struct machine_ops xen_machine_ops __initconst = { | 1065 | static const struct machine_ops xen_machine_ops __initconst = { |
1059 | .restart = xen_restart, | 1066 | .restart = xen_restart, |
1060 | .halt = xen_machine_halt, | 1067 | .halt = xen_machine_halt, |
1061 | .power_off = xen_machine_halt, | 1068 | .power_off = xen_machine_power_off, |
1062 | .shutdown = xen_machine_halt, | 1069 | .shutdown = xen_machine_halt, |
1063 | .crash_shutdown = xen_crash_shutdown, | 1070 | .crash_shutdown = xen_crash_shutdown, |
1064 | .emergency_restart = xen_emergency_restart, | 1071 | .emergency_restart = xen_emergency_restart, |
@@ -1241,6 +1248,14 @@ asmlinkage void __init xen_start_kernel(void) | |||
1241 | if (pci_xen) | 1248 | if (pci_xen) |
1242 | x86_init.pci.arch_init = pci_xen_init; | 1249 | x86_init.pci.arch_init = pci_xen_init; |
1243 | } else { | 1250 | } else { |
1251 | const struct dom0_vga_console_info *info = | ||
1252 | (void *)((char *)xen_start_info + | ||
1253 | xen_start_info->console.dom0.info_off); | ||
1254 | |||
1255 | xen_init_vga(info, xen_start_info->console.dom0.info_size); | ||
1256 | xen_start_info->console.domU.mfn = 0; | ||
1257 | xen_start_info->console.domU.evtchn = 0; | ||
1258 | |||
1244 | /* Make sure ACS will be enabled */ | 1259 | /* Make sure ACS will be enabled */ |
1245 | pci_request_acs(); | 1260 | pci_request_acs(); |
1246 | } | 1261 | } |