[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [xen-3.1-testing] x86, 32-on-64: Improve checking in vcpu_destroy_pagetables(). It *is*
# 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
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |