diff options
-rw-r--r-- | xen/arch/x86/domain.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/xen/arch/x86/domain.c b/xen/arch/x86/domain.c index a99871c72a..653ceafb0b 100644 --- a/xen/arch/x86/domain.c +++ b/xen/arch/x86/domain.c @@ -1412,7 +1412,13 @@ static void vcpu_destroy_pagetables(struct vcpu *v) put_page_and_type(mfn_to_page(pfn)); } - v->arch.guest_table = pagetable_null(); + if ( is_hvm_vcpu(v) ) + v->arch.guest_table = pagetable_null(); + else + l4e_write( + (l4_pgentry_t *) __va(pagetable_get_paddr(v->arch.guest_table)), + l4e_empty()); + v->arch.cr3 = 0; return; } |