From mboxrd@z Thu Jan 1 00:00:00 1970 From: Samuel Thibault Subject: [PATCH] PV-GRUB fix Date: Fri, 20 Jun 2008 17:33:25 +0100 Message-ID: <20080620163325.GR4297@implementation.uk.xensource.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Return-path: Content-Disposition: inline List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: xen-devel@lists.xensource.com List-Id: xen-devel@lists.xenproject.org I forgot one hook in the PV-GRUB patch, here is the missing part. 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 diff -r 3da148fb7d9b extras/mini-os/arch/x86/mm.c --- a/extras/mini-os/arch/x86/mm.c Thu Jun 19 11:09:10 2008 +0100 +++ b/extras/mini-os/arch/x86/mm.c Thu Jun 19 11:59:42 2008 +0100 @@ -528,18 +528,13 @@ 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)