From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from pentafluge.infradead.org (pentafluge.infradead.org [213.146.154.40]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by ozlabs.org (Postfix) with ESMTP id 8B70ADDE27 for ; Mon, 26 Feb 2007 12:17:16 +1100 (EST) Subject: Re: Make sure we populate the initroot filesystem late enough From: David Woodhouse To: Linus Torvalds In-Reply-To: References: <200612112059.kBBKx1j7022473@hera.kernel.org> <1172448057.3971.9.camel@shinybook.infradead.org> Content-Type: text/plain Date: Sun, 25 Feb 2007 20:17:40 -0500 Message-Id: <1172452660.3971.33.camel@shinybook.infradead.org> Mime-Version: 1.0 Cc: linuxppc-dev@ozlabs.org, Linux Kernel Mailing List , john stultz List-Id: Linux on PowerPC Developers Mail List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , On Sun, 2007-02-25 at 16:24 -0800, Linus Torvalds wrote: > Hmm. No, I don't think that should be a problem. free_initmem() only > happens at the very, after do_basic_setup() has been run, which > includes all the initcall stuff. I'm inclined to agree that it _shouldn't_ be a problem. Nevertheless, even this hack seems sufficient to 'fix' it: --- arch/powerpc/mm/init_32.c 2007-02-25 20:06:54.000000000 -0500 +++ arch/powerpc/mm/init_32.c.not 2007-02-25 20:06:41.000000000 -0500 @@ -243,13 +243,14 @@ void free_initmem(void) #ifdef CONFIG_BLK_DEV_INITRD void free_initrd_mem(unsigned long start, unsigned long end) { if (start < end) - printk ("Freeing initrd memory: %ldk freed\n", (end - start) >> 10); + printk ("NOT Freeing initrd memory: %ldKiB would be freed\n", (end - start) >> 10); + return; for (; start < end; start += PAGE_SIZE) { ClearPageReserved(virt_to_page(start)); init_page_count(virt_to_page(start)); free_page(start); totalram_pages++; } } #endif -- dwmw2