aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJan Beulich <jbeulich@suse.com>2012-08-16 17:38:05 +0100
committerJan Beulich <jbeulich@suse.com>2012-08-16 17:38:05 +0100
commit98bd89a61939c4b70b612825fc73c87b91ba77a1 (patch)
treec78fdf16166591fd06000d6fdbd12611f79cd127
parentb6f3a3cbf014b7adb992ffa697aca568ff7a7fcb (diff)
downloadxen-98bd89a61939c4b70b612825fc73c87b91ba77a1.tar.gz
xen-98bd89a61939c4b70b612825fc73c87b91ba77a1.tar.bz2
xen-98bd89a61939c4b70b612825fc73c87b91ba77a1.zip
EPT/PoD: fix interaction with 1Gb pages
When PoD got enabled to support 1Gb pages, ept_get_entry() didn't get updated to match - the assertion in there triggered, indicating that the call to p2m_pod_demand_populate() needed adjustment. Signed-off-by: Jan Beulich <jbeulich@suse.com> Acked-by: Tim Deegan <tim@xen.org> Committed-by: Tim Deegan <tim@xen.org>
-rw-r--r--xen/arch/x86/mm/p2m-ept.c5
1 files changed, 2 insertions, 3 deletions
diff --git a/xen/arch/x86/mm/p2m-ept.c b/xen/arch/x86/mm/p2m-ept.c
index 49c044e59f..c964f542b4 100644
--- a/xen/arch/x86/mm/p2m-ept.c
+++ b/xen/arch/x86/mm/p2m-ept.c
@@ -521,13 +521,12 @@ static mfn_t ept_get_entry(struct p2m_domain *p2m,
}
/* Populate this superpage */
- ASSERT(i == 1);
+ ASSERT(i <= 2);
index = gfn_remainder >> ( i * EPT_TABLE_ORDER);
ept_entry = table + index;
- if ( !p2m_pod_demand_populate(p2m, gfn,
- PAGE_ORDER_2M, q) )
+ if ( !p2m_pod_demand_populate(p2m, gfn, i * EPT_TABLE_ORDER, q) )
goto retry;
else
goto out;