diff options
Diffstat (limited to 'extras/mini-os/arch')
-rw-r--r-- | extras/mini-os/arch/x86/mm.c | 11 |
1 files changed, 3 insertions, 8 deletions
diff --git a/extras/mini-os/arch/x86/mm.c b/extras/mini-os/arch/x86/mm.c index ea8158045b..85b542437f 100644 --- a/extras/mini-os/arch/x86/mm.c +++ b/extras/mini-os/arch/x86/mm.c @@ -528,18 +528,13 @@ void *map_frames_ex(unsigned long *f, unsigned long n, unsigned long stride, static void clear_bootstrap(void) { - xen_pfn_t mfns[] = { virt_to_mfn(&shared_info) }; - int n = sizeof(mfns)/sizeof(*mfns); pte_t nullpte = { }; /* Use first page as the CoW zero page */ memset(&_text, 0, PAGE_SIZE); - mfn_zero = pfn_to_mfn((unsigned long) &_text); - if (HYPERVISOR_update_va_mapping((unsigned long) &_text, nullpte, UVMF_INVLPG)) - printk("Unable to unmap first page\n"); - - if (free_physical_pages(mfns, n) != n) - printk("Unable to free bootstrap pages\n"); + mfn_zero = virt_to_mfn((unsigned long) &_text); + if (HYPERVISOR_update_va_mapping(0, nullpte, UVMF_INVLPG)) + printk("Unable to unmap NULL page\n"); } void arch_init_p2m(unsigned long max_pfn) |