diff options
author | Keir Fraser <keir.fraser@citrix.com> | 2010-06-15 13:20:43 +0100 |
---|---|---|
committer | Keir Fraser <keir.fraser@citrix.com> | 2010-06-15 13:20:43 +0100 |
commit | 622c5d9ee4f9443a9632dc014f1fda27303aa77e (patch) | |
tree | 793b65bf6b24dedb5a14de6ba68d0f8cf9698e78 /xen/arch/x86/domain_build.c | |
parent | c2c4e65d960453d6d764c837015e817c06c8dcea (diff) | |
download | xen-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.c | 2 |
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; } |