diff options
author | Linus Torvalds | 2010-01-13 16:15:09 -0800 |
---|---|---|
committer | Linus Torvalds | 2010-01-13 16:15:09 -0800 |
commit | 4f374425b625d48445e370f63c896283eb2a9bae (patch) | |
tree | 9f8641b37ebaf18accfdc179a5701e5f7271a8e1 | |
parent | 004b35063296b6772fa72404a35b498f1e71e87e (diff) | |
parent | c5cae661d6cf808b6984762f763261adf35f3eb7 (diff) |
Merge branch 'for-linus/bugfixes' of git://xenbits.xensource.com/people/ianc/linux-2.6
* 'for-linus/bugfixes' of git://xenbits.xensource.com/people/ianc/linux-2.6:
xen: fix hang on suspend.
-rw-r--r-- | drivers/xen/manage.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/drivers/xen/manage.c b/drivers/xen/manage.c index c4997930afc7..5d42d55e299b 100644 --- a/drivers/xen/manage.c +++ b/drivers/xen/manage.c @@ -102,15 +102,15 @@ static void do_suspend(void) goto out_thaw; } + printk(KERN_DEBUG "suspending xenstore...\n"); + xs_suspend(); + err = dpm_suspend_noirq(PMSG_SUSPEND); if (err) { printk(KERN_ERR "dpm_suspend_noirq failed: %d\n", err); goto out_resume; } - printk(KERN_DEBUG "suspending xenstore...\n"); - xs_suspend(); - err = stop_machine(xen_suspend, &cancelled, cpumask_of(0)); dpm_resume_noirq(PMSG_RESUME); @@ -120,13 +120,13 @@ static void do_suspend(void) cancelled = 1; } +out_resume: if (!cancelled) { xen_arch_resume(); xs_resume(); } else xs_suspend_cancel(); -out_resume: dpm_resume_end(PMSG_RESUME); /* Make sure timer events get retriggered on all CPUs */ |