}
#ifdef CONFIG_PM_SLEEP
-static int xen_hvm_suspend(void *data)
-{
- struct suspend_info *si = data;
- int err;
-
- 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;
- }
-
- if (si->pre)
- si->pre();
-
- /*
- * This hypercall returns 1 if suspend was cancelled
- * or the domain was merely checkpointed, and 0 if it
- * is resuming in a new domain.
- */
- si->cancelled = HYPERVISOR_suspend(si->arg);
-
- if (si->post)
- si->post(si->cancelled);
-
- if (!si->cancelled) {
- xen_irq_resume();
- xen_console_resume();
- xen_timer_resume();
- }
-
- sysdev_resume();
-
- return 0;
-}
-
static int xen_suspend(void *data)
{
struct suspend_info *si = data;
si.post = &xen_post_suspend;
}
- if (xen_hvm_domain())
- err = stop_machine(xen_hvm_suspend, &si, cpumask_of(0));
- else
- err = stop_machine(xen_suspend, &si, cpumask_of(0));
+ err = stop_machine(xen_suspend, &si, cpumask_of(0));
dpm_resume_noirq(PMSG_RESUME);