Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/drzeus/mmc
[safe/jmp/linux-2.6] / drivers / xen / manage.c
index 5b546e3..d0e87cb 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();