|
|
|
|
|
|
|
|
|
|
xen-changelog
[Xen-changelog] Fix PAE debug builds to avoid shadowing shadow-mode pgdi
# HG changeset patch
# User kaf24@xxxxxxxxxxxxxxxxxxxx
# Node ID 0b98fcb98889f556ecb293600abc6f40fe5b2662
# Parent c43080e63545c2c9ba101fd8864b5aacc5d666e2
Fix PAE debug builds to avoid shadowing shadow-mode pgdirs below 4GB.
The current shadow mode is not aware of this extra level of shadowing
and gets rather confused. Furthermore it *always* ensures that its
PAE pgdirs are below 4GB so there is no need for the extra shadowing
logic to be invoked.
This fixes a bug introduced in changeset
10177:d5f98d23427a0d256b896fc63ccfd2c1f79e55ba
Signed-off-by: Keir Fraser <keir@xxxxxxxxxxxxx>
---
xen/arch/x86/mm.c | 11 +++++++++--
1 files changed, 9 insertions(+), 2 deletions(-)
diff -r c43080e63545 -r 0b98fcb98889 xen/arch/x86/mm.c
--- a/xen/arch/x86/mm.c Tue May 30 18:11:34 2006 +0100
+++ b/xen/arch/x86/mm.c Tue May 30 18:47:37 2006 +0100
@@ -266,8 +266,15 @@ void share_xen_page_with_privileged_gues
/* Only PDPTs above 4GB boundary need to be shadowed in low memory. */
#define l3tab_needs_shadow(mfn) (mfn >= 0x100000)
#else
-/* In debug builds we aggressively shadow PDPTs to exercise code paths. */
-#define l3tab_needs_shadow(mfn) ((mfn << PAGE_SHIFT) != __pa(idle_pg_table))
+/*
+ * In debug builds we aggressively shadow PDPTs to exercise code paths.
+ * We cannot safely shadow the idle page table, nor shadow-mode page tables
+ * (detected by lack of an owning domain). Always shadow PDPTs above 4GB.
+ */
+#define l3tab_needs_shadow(mfn) \
+ ((((mfn << PAGE_SHIFT) != __pa(idle_pg_table)) && \
+ (page_get_owner(mfn_to_page(mfn)) != NULL)) || \
+ (mfn >= 0x100000))
#endif
static l1_pgentry_t *fix_pae_highmem_pl1e;
_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog
|
<Prev in Thread] |
Current Thread |
[Next in Thread> |
- [Xen-changelog] Fix PAE debug builds to avoid shadowing shadow-mode pgdirs below 4GB.,
Xen patchbot-unstable <=
|
|
|
|
|