aboutsummaryrefslogtreecommitdiffstats
path: root/xen/arch/x86/domain_build.c
diff options
context:
space:
mode:
authorKeir Fraser <keir.fraser@citrix.com>2010-06-15 13:20:43 +0100
committerKeir Fraser <keir.fraser@citrix.com>2010-06-15 13:20:43 +0100
commit622c5d9ee4f9443a9632dc014f1fda27303aa77e (patch)
tree793b65bf6b24dedb5a14de6ba68d0f8cf9698e78 /xen/arch/x86/domain_build.c
parentc2c4e65d960453d6d764c837015e817c06c8dcea (diff)
downloadxen-622c5d9ee4f9443a9632dc014f1fda27303aa77e.tar.gz
xen-622c5d9ee4f9443a9632dc014f1fda27303aa77e.tar.bz2
xen-622c5d9ee4f9443a9632dc014f1fda27303aa77e.zip
x86: put_superpage() must also work for !opt_allow_superpage
This is because the P2M table, when placed at a kernel specified location, gets populated with large pages, which the domain must have a way to unmap/recycle. Additionally when allowing Dom0 to use superpages, they ought to be tracked accordingly in the superpage frame table. Signed-off-by: Jan Beulich <jbeulich@novell.com>
Diffstat (limited to 'xen/arch/x86/domain_build.c')
-rw-r--r--xen/arch/x86/domain_build.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/xen/arch/x86/domain_build.c b/xen/arch/x86/domain_build.c
index 166509f2e2..3995897e5b 100644
--- a/xen/arch/x86/domain_build.c
+++ b/xen/arch/x86/domain_build.c
@@ -914,6 +914,8 @@ int __init construct_dom0(
{
*l2tab = l2e_from_page(page,
L1_PROT|_PAGE_DIRTY|_PAGE_PSE);
+ if ( opt_allow_superpage )
+ get_superpage(page_to_mfn(page), d);
va += 1UL << L2_PAGETABLE_SHIFT;
continue;
}