X-Git-Url: https://git.karo-electronics.de/?a=blobdiff_plain;f=drivers%2Fxen%2Fmanage.c;h=24177272bcb84aed3ec51cb82f91535f0c034fc0;hb=c34c32ea97718bb24fc06158733580003ba89211;hp=db8c4c4ac88086bf7c2e9d1dfa946da399e91b27;hpb=a7153258b70ccbe3922fcee9ca4271d4f4c2bc55;p=mv-sheeva.git diff --git a/drivers/xen/manage.c b/drivers/xen/manage.c index db8c4c4ac88..24177272bcb 100644 --- a/drivers/xen/manage.c +++ b/drivers/xen/manage.c @@ -37,11 +37,19 @@ static enum shutdown_state shutting_down = SHUTDOWN_INVALID; #ifdef CONFIG_PM_SLEEP static int xen_hvm_suspend(void *data) { + int err; struct sched_shutdown r = { .reason = SHUTDOWN_suspend }; int *cancelled = data; BUG_ON(!irqs_disabled()); + err = sysdev_suspend(PMSG_SUSPEND); + if (err) { + printk(KERN_ERR "xen_hvm_suspend: sysdev_suspend failed: %d\n", + err); + return err; + } + *cancelled = HYPERVISOR_sched_op(SCHEDOP_shutdown, &r); xen_hvm_post_suspend(*cancelled); @@ -53,6 +61,8 @@ static int xen_hvm_suspend(void *data) xen_timer_resume(); } + sysdev_resume(); + return 0; }