|
|
|
|
|
|
|
|
|
|
xen-changelog
[Xen-changelog] [xen-3.1-testing] x86, 32-on-64: Improve checking in vcp
# HG changeset patch
# User Keir Fraser <keir.fraser@xxxxxxxxxx>
# Date 1196959813 0
# Node ID bb22138a768901dd638b9d3c6e49e6aa26f667a1
# Parent 1a3035f3d5279ef99517ff904f0d66029acc638f
x86, 32-on-64: Improve checking in vcpu_destroy_pagetables(). It *is*
possible for 64-bit guest to have matching guest_table and
guest_table_user.
Original patch by John Levon <levon@xxxxxxxxxxxxxxxxx>
Signed-off-by: Keir Fraser <keir.fraser@xxxxxxxxxxxxx>
xen-unstable changeset: 16401:f62e6c697eeb68a7a62f4beb87e85a68b91b3c6a
xen-unstable date: Tue Nov 20 15:34:25 2007 +0000
---
xen/arch/x86/domain.c | 15 +++++++--------
1 files changed, 7 insertions(+), 8 deletions(-)
diff -r 1a3035f3d527 -r bb22138a7689 xen/arch/x86/domain.c
--- a/xen/arch/x86/domain.c Thu Dec 06 16:49:41 2007 +0000
+++ b/xen/arch/x86/domain.c Thu Dec 06 16:50:13 2007 +0000
@@ -1624,10 +1624,6 @@ static void vcpu_destroy_pagetables(stru
put_page(mfn_to_page(pfn));
else
put_page_and_type(mfn_to_page(pfn));
-#ifdef __x86_64__
- if ( pfn == pagetable_get_pfn(v->arch.guest_table_user) )
- v->arch.guest_table_user = pagetable_null();
-#endif
v->arch.guest_table = pagetable_null();
}
@@ -1636,10 +1632,13 @@ static void vcpu_destroy_pagetables(stru
pfn = pagetable_get_pfn(v->arch.guest_table_user);
if ( pfn != 0 )
{
- if ( paging_mode_refcounts(d) )
- put_page(mfn_to_page(pfn));
- else
- put_page_and_type(mfn_to_page(pfn));
+ if ( !is_pv_32bit_vcpu(v) )
+ {
+ if ( paging_mode_refcounts(d) )
+ put_page(mfn_to_page(pfn));
+ else
+ put_page_and_type(mfn_to_page(pfn));
+ }
v->arch.guest_table_user = pagetable_null();
}
#endif
_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog
|
<Prev in Thread] |
Current Thread |
[Next in Thread> |
- [Xen-changelog] [xen-3.1-testing] x86, 32-on-64: Improve checking in vcpu_destroy_pagetables(). It *is*,
Xen patchbot-3.1-testing <=
|
|
|
|
|