aboutsummaryrefslogtreecommitdiffstats
path: root/tools/xcutils
diff options
context:
space:
mode:
authorKeir Fraser <keir.fraser@citrix.com>2008-07-04 12:39:18 +0100
committerKeir Fraser <keir.fraser@citrix.com>2008-07-04 12:39:18 +0100
commit52d9d32d02078742805861e7152c45b03209ebab (patch)
tree336ff7656ef06cbf4f2ce569093a010973e59bb6 /tools/xcutils
parentddfd61bd7e71b4ad602da69473586d072017992b (diff)
downloadxen-52d9d32d02078742805861e7152c45b03209ebab.tar.gz
xen-52d9d32d02078742805861e7152c45b03209ebab.tar.bz2
xen-52d9d32d02078742805861e7152c45b03209ebab.zip
Cleanups to suspend-event-channel patches.
Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
Diffstat (limited to 'tools/xcutils')
-rw-r--r--tools/xcutils/xc_save.c21
1 files changed, 3 insertions, 18 deletions
diff --git a/tools/xcutils/xc_save.c b/tools/xcutils/xc_save.c
index c72500a700..3826fbb125 100644
--- a/tools/xcutils/xc_save.c
+++ b/tools/xcutils/xc_save.c
@@ -25,9 +25,7 @@
static struct suspendinfo {
int xce; /* event channel handle */
-
int suspend_evtchn;
- int suspended_evtchn;
} si;
/**
@@ -47,11 +45,6 @@ static int compat_suspend(int domid)
static int suspend_evtchn_release(int xc, int domid)
{
- if (si.suspended_evtchn >= 0) {
- xc_dom_subscribe(xc, domid, 0);
- xc_evtchn_unbind(si.xce, si.suspended_evtchn);
- si.suspended_evtchn = -1;
- }
if (si.suspend_evtchn >= 0) {
xc_evtchn_unbind(si.xce, si.suspend_evtchn);
si.suspend_evtchn = -1;
@@ -75,7 +68,6 @@ static int suspend_evtchn_init(int xc, int domid)
si.xce = -1;
si.suspend_evtchn = -1;
- si.suspended_evtchn = -1;
xs = xs_daemon_open();
if (!xs) {
@@ -107,14 +99,7 @@ static int suspend_evtchn_init(int xc, int domid)
goto cleanup;
}
- si.suspended_evtchn = xc_evtchn_bind_unbound_port(si.xce, domid);
- if (si.suspended_evtchn < 0) {
- errx(1, "failed to allocate suspend notification port: %d",
- si.suspended_evtchn);
- goto cleanup;
- }
-
- rc = xc_dom_subscribe(xc, domid, si.suspended_evtchn);
+ rc = xc_domain_subscribe_for_suspend(xc, domid, port);
if (rc < 0) {
errx(1, "failed to subscribe to domain: %d", rc);
goto cleanup;
@@ -149,10 +134,10 @@ static int evtchn_suspend(int domid)
errx(1, "error polling suspend notification channel: %d", rc);
return 0;
}
- } while (rc != si.suspended_evtchn);
+ } while (rc != si.suspend_evtchn);
/* harmless for one-off suspend */
- if (xc_evtchn_unmask(si.xce, si.suspended_evtchn) < 0)
+ if (xc_evtchn_unmask(si.xce, si.suspend_evtchn) < 0)
errx(1, "failed to unmask suspend notification channel: %d", rc);
/* notify xend that it can do device migration */