[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <AANLkTi=odO0pGRdk5=s4qWm6bqej=CdWyS4CTsTWBxEc@mail.gmail.com>
Date: Mon, 28 Feb 2011 11:18:11 -0800
From: Yinghai Lu <yinghai@...nel.org>
To: Ingo Molnar <mingo@...e.hu>
Cc: Mike Travis <travis@....com>, David Rientjes <rientjes@...gle.com>,
Jack Steiner <steiner@....com>, Robin Holt <holt@....com>,
Len Brown <len.brown@...el.com>,
Thomas Gleixner <tglx@...utronix.de>,
"H. Peter Anvin" <hpa@...or.com>,
Andrew Morton <akpm@...ux-foundation.org>,
linux-acpi@...r.kernel.org, x86@...nel.org,
linux-kernel@...r.kernel.org, Tejun Heo <tj@...nel.org>,
Linus Torvalds <torvalds@...ux-foundation.org>
Subject: Re: [PATCH 1/4] printk: Allocate kernel log buffer earlier
On Mon, Feb 28, 2011 at 12:06 AM, Ingo Molnar <mingo@...e.hu> wrote:
>
> * Yinghai Lu <yinghai@...nel.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@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists