On Mon, Mar 12, 2012 at 10:36 PM, Avery Pennarun <apenwarr@xxxxxxxxx> wrote: > The code in setup_log_buf() had two memory allocation branches, depending > on the value of 'early'. If early==1, it would use memblock_alloc(); if > early==0, it would use alloc_bootmem_nopanic(). > > bootmem should already configured by the time setup_log_buf(early=1) is > called, so there's no reason to have the separation. Furthermore, on > arches with nobootmem, memblock_alloc is essentially the same as > alloc_bootmem anyway. x86 is one such arch, and also the only one > that uses early=1. > > Signed-off-by: Avery Pennarun <apenwarr@xxxxxxxxx> > --- > kernel/printk.c | 13 +------------ > 1 files changed, 1 insertions(+), 12 deletions(-) > > diff --git a/kernel/printk.c b/kernel/printk.c > index 32690a0..bf96a7d 100644 > --- a/kernel/printk.c > +++ b/kernel/printk.c > @@ -31,7 +31,6 @@ > #include <linux/smp.h> > #include <linux/security.h> > #include <linux/bootmem.h> > -#include <linux/memblock.h> > #include <linux/syscalls.h> > #include <linux/kexec.h> > #include <linux/kdb.h> > @@ -195,17 +194,7 @@ void __init setup_log_buf(int early) > if (!new_log_buf_len) > return; > > - if (early) { > - unsigned long mem; > - > - mem = memblock_alloc(new_log_buf_len, PAGE_SIZE); > - if (!mem) > - return; > - new_log_buf = __va(mem); > - } else { > - new_log_buf = alloc_bootmem_nopanic(new_log_buf_len); > - } > - > + new_log_buf = alloc_bootmem_nopanic(new_log_buf_len); > if (unlikely(!new_log_buf)) { > pr_err("log_buf_len: %ld bytes not available\n", > new_log_buf_len); > -- that seems not right. for x86, setup_log_buf(1) is quite early called in setup_arch() before bootmem is there. bootmem should be killed after memblock is supported for arch that current support bootmem. Yinghai -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/ Don't email: <a href