|
|
|
|
|
|
|
|
|
|
xen-changelog
[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
|
<Prev in Thread] |
Current Thread |
[Next in Thread> |
- [Xen-changelog] imported patch ../tmp/fix_free_monitor_pagetable.patch,
Xen patchbot -unstable <=
|
|
|
|
|