Messages in this thread | | | Date | Mon, 28 Feb 2011 11:18:11 -0800 | Subject | Re: [PATCH 1/4] printk: Allocate kernel log buffer earlier | From | Yinghai Lu <> |
| |
On Mon, Feb 28, 2011 at 12:06 AM, Ingo Molnar <mingo@elte.hu> wrote: > > * Yinghai Lu <yinghai@kernel.org> wrote: > >> + new_addr = memblock_alloc(new_log_buf_len, PAGE_SIZE); >> + if (new_addr != MEMBLOCK_ERROR) >> + new_log_buf = __va(new_addr); >> + else >> + new_log_buf = alloc_bootmem(new_log_buf_len); > > alloc_bootmem() can fail, especially if someone uses a too large boot parameter > value - and your code does not check for failure.
alloc_bootmem will panic if it fails.
static void * __init ___alloc_bootmem(unsigned long size, unsigned long align, unsigned long goal, unsigned long limit) { void *mem = ___alloc_bootmem_nopanic(size, align, goal, limit);
if (mem) return mem; /* * Whoops, we cannot satisfy the allocation request. */ printk(KERN_ALERT "bootmem alloc of %lu bytes failed!\n", size); panic("Out of memory"); return NULL; }
so it should be ok. -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |