File 25757-x86-EPT-PoD-1Gb-assert.patch of Package xen.openSUSE_12.1_Update
# HG changeset patch
# User Jan Beulich <jbeulich@suse.com>
# Date 1345135085 -3600
# Node ID 3468a834be8d7d36e135706639c4c61965ab8116
# Parent 8918737c7e80fb3e5fd410c6f386cd21afa0683a
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>
--- a/xen/arch/x86/mm/hap/p2m-ept.c
+++ b/xen/arch/x86/mm/hap/p2m-ept.c
@@ -542,13 +542,13 @@ static mfn_t ept_get_entry(struct p2m_do
}
/* Populate this superpage */
- ASSERT(i == 1);
+ ASSERT(i <= 2);
index = gfn_remainder >> ( i * EPT_TABLE_ORDER);
ept_entry = table + index;
- if ( !ept_pod_check_and_populate(p2m, gfn,
- ept_entry, 9, q) )
+ if ( !ept_pod_check_and_populate(p2m, gfn, ept_entry,
+ i * EPT_TABLE_ORDER, q) )
goto retry;
else
goto out;