aboutsummaryrefslogtreecommitdiff
path: root/drivers/xen/manage.c
diff options
context:
space:
mode:
authorIngo Molnar <mingo@elte.hu>2011-04-26 19:36:14 +0200
committerIngo Molnar <mingo@elte.hu>2011-04-26 19:36:17 +0200
commit7bd5fafeb414cf00deee32c82834f8bf1426b9ac (patch)
tree1103053fa40576e9f9fc2818ea1910180e09b752 /drivers/xen/manage.c
parentfa7b69475a6c192853949ba496dd9c37b497b548 (diff)
parentec75a71634dabe439db91c1ef51d5099f4493808 (diff)
Merge branch 'perf/urgent' into perf/stat
Merge reason: We want to queue up dependent changes. Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'drivers/xen/manage.c')
-rw-r--r--drivers/xen/manage.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/drivers/xen/manage.c b/drivers/xen/manage.c
index 1ac94125bf9..a2eee574784 100644
--- a/drivers/xen/manage.c
+++ b/drivers/xen/manage.c
@@ -8,6 +8,7 @@
#include <linux/sysrq.h>
#include <linux/stop_machine.h>
#include <linux/freezer.h>
+#include <linux/syscore_ops.h>
#include <xen/xen.h>
#include <xen/xenbus.h>
@@ -70,8 +71,13 @@ static int xen_suspend(void *data)
BUG_ON(!irqs_disabled());
err = sysdev_suspend(PMSG_FREEZE);
+ if (!err) {
+ err = syscore_suspend();
+ if (err)
+ sysdev_resume();
+ }
if (err) {
- printk(KERN_ERR "xen_suspend: sysdev_suspend failed: %d\n",
+ printk(KERN_ERR "xen_suspend: system core suspend failed: %d\n",
err);
return err;
}
@@ -95,6 +101,7 @@ static int xen_suspend(void *data)
xen_timer_resume();
}
+ syscore_resume();
sysdev_resume();
return 0;