diff options
Diffstat (limited to 'extras/mini-os/arch/x86/mm.c')
-rw-r--r-- | extras/mini-os/arch/x86/mm.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/extras/mini-os/arch/x86/mm.c b/extras/mini-os/arch/x86/mm.c index b8f55b7c58..5e6f180efd 100644 --- a/extras/mini-os/arch/x86/mm.c +++ b/extras/mini-os/arch/x86/mm.c @@ -497,11 +497,11 @@ static void clear_bootstrap(void) int n = sizeof(mfns)/sizeof(*mfns); pte_t nullpte = { }; - /* Use page 0 as the CoW zero page */ - memset(NULL, 0, PAGE_SIZE); - mfn_zero = pfn_to_mfn(0); - if (HYPERVISOR_update_va_mapping(0, nullpte, UVMF_INVLPG)) - printk("Unable to unmap page 0\n"); + /* 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"); set_xen_guest_handle(reservation.extent_start, mfns); reservation.nr_extents = n; |