diff options
author | Jan Beulich <jbeulich@suse.com> | 2012-08-16 17:38:05 +0100 |
---|---|---|
committer | Jan Beulich <jbeulich@suse.com> | 2012-08-16 17:38:05 +0100 |
commit | 98bd89a61939c4b70b612825fc73c87b91ba77a1 (patch) | |
tree | c78fdf16166591fd06000d6fdbd12611f79cd127 | |
parent | b6f3a3cbf014b7adb992ffa697aca568ff7a7fcb (diff) | |
download | xen-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.c | 5 |
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; |