aboutsummaryrefslogtreecommitdiffstats
path: root/xen/common/domain.c
diff options
context:
space:
mode:
authorOlaf Hering <olaf@aepfle.de>2011-11-30 07:08:53 -0800
committerOlaf Hering <olaf@aepfle.de>2011-11-30 07:08:53 -0800
commit20b21cb1e1141d5dcfbc0a0c911cec72194ecc4a (patch)
tree3ec12c736bb74953b72dd2d8ed948f1c99909e89 /xen/common/domain.c
parenta2a88004afe1cce99bba724929d59366e752e886 (diff)
downloadxen-20b21cb1e1141d5dcfbc0a0c911cec72194ecc4a.tar.gz
xen-20b21cb1e1141d5dcfbc0a0c911cec72194ecc4a.tar.bz2
xen-20b21cb1e1141d5dcfbc0a0c911cec72194ecc4a.zip
mem_event: move mem_event_domain out of struct domain
An upcoming change may increase the size of mem_event_domain. The result is a build failure because struct domain gets larger than a page. Allocate the room for the three mem_event_domain members at runtime. v2: - remove mem_ prefix from members of new struct Signed-off-by: Olaf Hering <olaf@aepfle.de> Committed-by: Keir Fraser <keir@xen.org>
Diffstat (limited to 'xen/common/domain.c')
-rw-r--r--xen/common/domain.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/xen/common/domain.c b/xen/common/domain.c
index 9e355c898d..e110585ebd 100644
--- a/xen/common/domain.c
+++ b/xen/common/domain.c
@@ -304,6 +304,10 @@ struct domain *domain_create(
init_status |= INIT_gnttab;
poolid = 0;
+
+ d->mem_event = xzalloc(struct mem_event_per_domain);
+ if ( !d->mem_event )
+ goto fail;
}
if ( arch_domain_create(d, domcr_flags) != 0 )
@@ -335,6 +339,7 @@ struct domain *domain_create(
fail:
d->is_dying = DOMDYING_dead;
atomic_set(&d->refcnt, DOMAIN_DESTROYED);
+ xfree(d->mem_event);
if ( init_status & INIT_arch )
arch_domain_destroy(d);
if ( init_status & INIT_gnttab )