diff --git a/xen/arch/arm/mm.c b/xen/arch/arm/mm.c index 747083d820..64a79d45b3 100644 --- a/xen/arch/arm/mm.c +++ b/xen/arch/arm/mm.c @@ -614,11 +614,12 @@ void * __init early_fdt_map(paddr_t fdt_paddr) void __init remove_early_mappings(void) { - lpae_t pte = {0}; - write_pte(xen_second + second_table_offset(BOOT_FDT_VIRT_START), pte); - write_pte(xen_second + second_table_offset(BOOT_FDT_VIRT_START + SZ_2M), - pte); - flush_xen_tlb_range_va(BOOT_FDT_VIRT_START, BOOT_FDT_SLOT_SIZE); + int rc; + + /* destroy the _PAGE_BLOCK mapping */ + rc = modify_xen_mappings(BOOT_FDT_VIRT_START, BOOT_FDT_VIRT_END, + _PAGE_BLOCK); + BUG_ON(rc); } /*