Re: Make sure we populate the initroot filesystem late enough
From: David Woodhouse <dwmw2@infradead.org>
Date: 2007-02-26 00:00:32
Also in:
lkml
On Mon, 2006-12-11 at 20:59 +0000, Linux Kernel Mailing List wrote:
Gitweb: http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=8d610dd52dd1da696e199e4b4545f33a2a5de5c6 Commit: 8d610dd52dd1da696e199e4b4545f33a2a5de5c6 Parent: 8993780a6e44fb4e7ed34e33458506a775356c6e Author: Linus Torvalds [off-list ref] AuthorDate: Mon Dec 11 12:12:04 2006 -0800 Committer: Linus Torvalds [off-list ref] CommitDate: Mon Dec 11 12:12:04 2006 -0800 Make sure we populate the initroot filesystem late enough We should not initialize rootfs before all the core initializers have run. So do it as a separate stage just before starting the regular driver initializers. Signed-off-by: Linus Torvalds [off-list ref]
This seems to be what's triggering the apparent memory corruption we've been seeing recently -- in the case of the Fedora kernel it manifests itself as a BUG() in cache_alloc_refill() when the pmac ide driver initialises. Another report was at http://lkml.org/lkml/2006/12/17/4 We've been seeing it on a Mac Mini too, and I managed to reproduce it on my shinybook this evening by booting with 'mem=512M'. One side-effect of this patch is to move the call to free_initrd() much later in the init sequence, potentially after other memory management code is assuming it's already been freed. -- dwmw2