From 24c585bf6e13f4f14ad89f4cbdab004a7a7f85c8 Mon Sep 17 00:00:00 2001 From: Wei Liu Date: Thu, 31 Jan 2019 18:31:04 +0000 Subject: [PATCH] xxx paging_init --- xen/arch/x86/x86_64/mm.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/xen/arch/x86/x86_64/mm.c b/xen/arch/x86/x86_64/mm.c index 629b667b1d..82e5261e58 100644 --- a/xen/arch/x86/x86_64/mm.c +++ b/xen/arch/x86/x86_64/mm.c @@ -648,8 +648,10 @@ void __init paging_init(void) /* Create user-accessible L2 directory to map the MPT for compat guests. */ BUILD_BUG_ON(l4_table_offset(RDWR_MPT_VIRT_START) != l4_table_offset(HIRO_COMPAT_MPT_VIRT_START)); - l3_ro_mpt = l4e_to_l3e(idle_pg_table[l4_table_offset( - HIRO_COMPAT_MPT_VIRT_START)]); + + l3_ro_mpt_mfn = l4e_get_mfn(idle_pg_table[l4_table_offset( + HIRO_COMPAT_MPT_VIRT_START)]); + l3_ro_mpt = map_xen_pagetable_new(l3_ro_mpt_mfn); l2_ro_mpt_mfn = alloc_xen_pagetable_new(); if ( mfn_eq(l2_ro_mpt_mfn, INVALID_MFN) ) @@ -701,6 +703,7 @@ void __init paging_init(void) #undef MFN unmap_xen_pagetable_new(l2_ro_mpt); + unmap_xen_pagetable_new(l3_ro_mpt); machine_to_phys_mapping_valid = 1; -- 2.39.5