[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] imported patch ../tmp/fix_free_monitor_pagetable.patch
# HG changeset patch # User kaf24@xxxxxxxxxxxxxxxxxxxx # Node ID 7e9ec4b2cc3cc2241b42f75e0cc5470bba97a3bb # Parent 5fb211049b3fa5888a633a7287136b95d46b5c14 imported patch ../tmp/fix_free_monitor_pagetable.patch diff -r 5fb211049b3f -r 7e9ec4b2cc3c xen/arch/x86/shadow32.c --- a/xen/arch/x86/shadow32.c Wed Sep 28 13:06:41 2005 +++ b/xen/arch/x86/shadow32.c Wed Sep 28 13:07:25 2005 @@ -755,9 +755,13 @@ /* * Then free monitor_table. + * Note: for VMX guest, only BSP need do this free. */ - mfn = pagetable_get_pfn(v->arch.monitor_table); - free_domheap_page(&frame_table[mfn]); + if (!(VMX_DOMAIN(v) && v->vcpu_id)) { + mfn = pagetable_get_pfn(v->arch.monitor_table); + unmap_domain_page(v->arch.monitor_vtable); + free_domheap_page(&frame_table[mfn]); + } v->arch.monitor_table = mk_pagetable(0); v->arch.monitor_vtable = 0; diff -r 5fb211049b3f -r 7e9ec4b2cc3c xen/arch/x86/shadow_public.c --- a/xen/arch/x86/shadow_public.c Wed Sep 28 13:06:41 2005 +++ b/xen/arch/x86/shadow_public.c Wed Sep 28 13:07:25 2005 @@ -256,14 +256,16 @@ { unsigned long mfn; -// ASSERT( pagetable_val(v->arch.monitor_table) ); + ASSERT( pagetable_val(v->arch.monitor_table) ); /* * free monitor_table. + * Note: for VMX guest, only BSP need do this free. */ - //mfn = (pagetable_val(v->arch.monitor_table)) >> PAGE_SHIFT; - mfn = pagetable_get_pfn(v->arch.monitor_table); - unmap_domain_page(v->arch.monitor_vtable); - free_domheap_page(&frame_table[mfn]); + if (!(VMX_DOMAIN(v) && v->vcpu_id)) { + mfn = pagetable_get_pfn(v->arch.monitor_table); + unmap_domain_page(v->arch.monitor_vtable); + free_domheap_page(&frame_table[mfn]); + } v->arch.monitor_table = mk_pagetable(0); v->arch.monitor_vtable = 0; } @@ -358,9 +360,13 @@ /* * Then free monitor_table. + * Note: for VMX guest, only BSP need do this free. */ - mfn = pagetable_get_pfn(v->arch.monitor_table); - free_domheap_page(&frame_table[mfn]); + if (!(VMX_DOMAIN(v) && v->vcpu_id)) { + mfn = pagetable_get_pfn(v->arch.monitor_table); + unmap_domain_page(v->arch.monitor_vtable); + free_domheap_page(&frame_table[mfn]); + } v->arch.monitor_table = mk_pagetable(0); v->arch.monitor_vtable = 0; _______________________________________________ Xen-changelog mailing list Xen-changelog@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-changelog
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |