aboutsummaryrefslogtreecommitdiffstats
path: root/xen/common/domain.c
diff options
context:
space:
mode:
authorTim Deegan <tim@xen.org>2012-03-08 16:40:05 +0000
committerTim Deegan <tim@xen.org>2012-03-08 16:40:05 +0000
commit762e791d8a526c9d6eab6e061f595d2c434a4e98 (patch)
treede538b97bdaa4c137d313274d2e9c3d31fc9d579 /xen/common/domain.c
parentf9f9daee79a5711c7cd880a10dbff02ed5cd749b (diff)
downloadxen-762e791d8a526c9d6eab6e061f595d2c434a4e98.tar.gz
xen-762e791d8a526c9d6eab6e061f595d2c434a4e98.tar.bz2
xen-762e791d8a526c9d6eab6e061f595d2c434a4e98.zip
x86/mm: Clean up mem event structures on domain destruction
Otherwise we wind up with zombie domains, still holding onto refs to the mem event ring pages. Signed-off-by: Andres Lagar-Cavilla <andres@lagarcavilla.org> Acked-by: Tim Deegan <tim@xen.org> Committed-by: Tim Deegan <tim@xen.org>
Diffstat (limited to 'xen/common/domain.c')
-rw-r--r--xen/common/domain.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/xen/common/domain.c b/xen/common/domain.c
index 500c7a210c..8840202af5 100644
--- a/xen/common/domain.c
+++ b/xen/common/domain.c
@@ -479,6 +479,9 @@ int domain_kill(struct domain *d)
break;
}
d->is_dying = DOMDYING_dead;
+ /* Mem event cleanup has to go here because the rings
+ * have to be put before we call put_domain. */
+ mem_event_cleanup(d);
put_domain(d);
send_global_virq(VIRQ_DOM_EXC);
/* fallthrough */