]> err.no Git - linux-2.6/blobdiff - drivers/xen/manage.c
Merge branch 'sched-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel...
[linux-2.6] / drivers / xen / manage.c
index 5b546e365f007d028843eea0ee84e77a0def1f58..d0e87cbe157ca5e4634151f8d997e9d66fb66ebc 100644 (file)
@@ -63,11 +63,12 @@ static int xen_suspend(void *data)
        gnttab_resume();
        xen_mm_unpin_all();
 
-       device_power_up();
+       device_power_up(PMSG_RESUME);
 
        if (!*cancelled) {
                xen_irq_resume();
                xen_console_resume();
+               xen_timer_resume();
        }
 
        return 0;
@@ -101,18 +102,19 @@ static void do_suspend(void)
        /* XXX use normal device tree? */
        xenbus_suspend();
 
-       err = stop_machine_run(xen_suspend, &cancelled, 0);
+       err = stop_machine(xen_suspend, &cancelled, &cpumask_of_cpu(0));
        if (err) {
                printk(KERN_ERR "failed to start xen_suspend: %d\n", err);
                goto out;
        }
 
-       if (!cancelled)
+       if (!cancelled) {
+               xen_arch_resume();
                xenbus_resume();
-       else
+       else
                xenbus_suspend_cancel();
 
-       device_resume();
+       device_resume(PMSG_RESUME);
 
        /* Make sure timer events get retriggered on all CPUs */
        clock_was_set();