aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorIan Jackson <Ian.Jackson@eu.citrix.com>2012-11-01 17:46:03 +0000
committerIan Jackson <Ian.Jackson@eu.citrix.com>2012-11-01 17:46:03 +0000
commitec82f9fe73ab06600fcd02dafc89d497dba5f176 (patch)
treef12f2d70fc13fe1fbc19040a2dafe26ba2aab511
parent1918a6f3cbd20db6d37ad13af859348f6c7a1520 (diff)
parent2eff6ca69f3736ea150d12117d9cf7c16c415f2f (diff)
downloadxen-ec82f9fe73ab06600fcd02dafc89d497dba5f176.tar.gz
xen-ec82f9fe73ab06600fcd02dafc89d497dba5f176.tar.bz2
xen-ec82f9fe73ab06600fcd02dafc89d497dba5f176.zip
Merge
-rw-r--r--tools/firmware/hvmloader/xenbus.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/tools/firmware/hvmloader/xenbus.c b/tools/firmware/hvmloader/xenbus.c
index 71024ebe4d..eeb7001b4b 100644
--- a/tools/firmware/hvmloader/xenbus.c
+++ b/tools/firmware/hvmloader/xenbus.c
@@ -64,6 +64,8 @@ void xenbus_setup(void)
/* Reset the xenbus connection so the next kernel can start again. */
void xenbus_shutdown(void)
{
+ struct shared_info *shinfo = get_shared_info();
+
ASSERT(rings != NULL);
/* We zero out the whole ring -- the backend can handle this, and it's
@@ -72,7 +74,9 @@ void xenbus_shutdown(void)
memset(rings, 0, sizeof *rings);
/* Clear the event-channel state too. */
- memset(get_shared_info(), 0, PAGE_SIZE);
+ memset(shinfo->vcpu_info, 0, sizeof(shinfo->vcpu_info));
+ memset(shinfo->evtchn_pending, 0, sizeof(shinfo->evtchn_pending));
+ memset(shinfo->evtchn_mask, 0, sizeof(shinfo->evtchn_mask));
rings = NULL;
}