aboutsummaryrefslogtreecommitdiffstats
path: root/extras/mini-os/arch
diff options
context:
space:
mode:
authorKeir Fraser <keir.fraser@citrix.com>2008-06-20 17:44:50 +0100
committerKeir Fraser <keir.fraser@citrix.com>2008-06-20 17:44:50 +0100
commit0e05d6cdd81662d44e2c6f46ea89a7060012123b (patch)
tree7e896ad8850512781aecdfc8e949ecd39989cb4c /extras/mini-os/arch
parente0dd5c3b38b04af82418279baeefd3d00f00d12a (diff)
downloadxen-0e05d6cdd81662d44e2c6f46ea89a7060012123b.tar.gz
xen-0e05d6cdd81662d44e2c6f46ea89a7060012123b.tar.bz2
xen-0e05d6cdd81662d44e2c6f46ea89a7060012123b.zip
minios: do not systematically free the page under shared info, as the
guest booted by PV-GRUB will need it. Signed-off-by: Samuel Thibault <samuel.thibault@eu.citrix.com>
Diffstat (limited to 'extras/mini-os/arch')
-rw-r--r--extras/mini-os/arch/x86/mm.c11
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)