Signed-off-by: Gerd Hoffmann diff -r befab551b0e1 xen/arch/x86/mm.c --- a/xen/arch/x86/mm.c Sun Aug 13 09:44:07 2006 +0100 +++ b/xen/arch/x86/mm.c Mon Aug 14 12:49:11 2006 +0200 @@ -1763,6 +1763,7 @@ int new_guest_cr3(unsigned long mfn) if ( unlikely(!okay) ) { /* Switch to idle pagetable: this VCPU has no active p.t. now. */ + MEM_LOG("New baseptr %lx: slow path via idle pagetables", mfn); old_base_mfn = pagetable_get_pfn(v->arch.guest_table); v->arch.guest_table = pagetable_null(); update_pagetables(v); @@ -2046,8 +2047,10 @@ int do_mmuext_op( #ifdef __x86_64__ case MMUEXT_NEW_USER_BASEPTR: - okay = get_page_and_type_from_pagenr( - mfn, PGT_root_page_table, d); + okay = 1; + if (likely(mfn != 0)) + okay = get_page_and_type_from_pagenr( + mfn, PGT_root_page_table, d); if ( unlikely(!okay) ) { MEM_LOG("Error while installing new mfn %lx", mfn);