From 52d9d32d02078742805861e7152c45b03209ebab Mon Sep 17 00:00:00 2001 From: Keir Fraser Date: Fri, 4 Jul 2008 12:39:18 +0100 Subject: Cleanups to suspend-event-channel patches. Signed-off-by: Keir Fraser --- tools/xcutils/xc_save.c | 21 +++------------------ 1 file changed, 3 insertions(+), 18 deletions(-) (limited to 'tools/xcutils') 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 */ -- cgit v1.2.3