|
|
|
|
|
|
|
|
|
|
xen-devel
[Xen-devel] RE: [PATCH]xen/acpi: make poweroff really work for pv-ops do
You are right. To make Xen poweroff really work for ACPI system, it requires
dom0 to provide some assistance such as _SST invoke and so on.
Jimmy
Jeremy Fitzhardinge wrote:
> On 11/23/09 17:33, Wei, Gang wrote:
>> xen/acpi: Make poweroff really work for pv-ops dom0
>>
>> sched_op(SHUTDOWN_poweroff) hypercall will only halt all physical
>> cpus without really poweroff the system. Use pm_power_off fn to
>> achieve it.
>>
>
> It seems unfortunate that Xen can't actually implement
> SHUTDOWN_poweroff in a manner that the name suggests ;) But it can't
> because it may need to interpret _SST to do it...
>
> Thanks,
> J
>
>> Signed-off-by: Wei Gang <gang.wei@xxxxxxxxx>
>>
>> diff --git a/arch/x86/xen/enlighten.c b/arch/x86/xen/enlighten.c
>> index ecb9b0d..d9fd3f4 100644
>> --- a/arch/x86/xen/enlighten.c
>> +++ b/arch/x86/xen/enlighten.c
>> @@ -1058,6 +1058,14 @@ static void xen_machine_halt(void)
>> xen_reboot(SHUTDOWN_poweroff);
>> }
>>
>> +static void xen_machine_power_off(void)
>> +{
>> + if (pm_power_off)
>> + pm_power_off();
>> + else
>> + xen_reboot(SHUTDOWN_poweroff);
>> +}
>> +
>> static void xen_crash_shutdown(struct pt_regs *regs) {
>> xen_reboot(SHUTDOWN_crash);
>> @@ -1066,7 +1074,7 @@ static void xen_crash_shutdown(struct pt_regs
>> *regs) static const struct machine_ops __initdata xen_machine_ops =
>> { .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,
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|
|
|
|
|