On 2014/8/10 14:14, tangchen wrote: > Sorry, add Xishi Qiu <qiuxishi@xxxxxxxxxx> > > On 08/10/2014 02:12 PM, Tang Chen wrote: >> In memblock_find_in_range_node(), we defeind ret as int. But it shoule >> be phys_addr_t because it is used to store the return value from >> __memblock_find_range_bottom_up(). >> >> The bug has not been triggered because when allocating low memory near >> the kernel end, the "int ret" won't turn out to be minus. When we started >> to allocate memory on other nodes, and the "int ret" could be minus. >> Then the kernel will panic. >> >> A simple way to reproduce this: comment out the following code in numa_init(), >> >> memblock_set_bottom_up(false); >> >> and the kernel won't boot. >> >> Reported-by: Xishi Qiu <qiuxishi@xxxxxxxxxx> >> Signed-off-by: Tang Chen <tangchen@xxxxxxxxxxxxxx> >> --- >> mm/memblock.c | 3 +-- >> 1 file changed, 1 insertion(+), 2 deletions(-) >> >> diff --git a/mm/memblock.c b/mm/memblock.c >> index 6d2f219..70fad0c 100644 >> --- a/mm/memblock.c >> +++ b/mm/memblock.c >> @@ -192,8 +192,7 @@ phys_addr_t __init_memblock memblock_find_in_range_node(phys_addr_t size, >> phys_addr_t align, phys_addr_t start, >> phys_addr_t end, int nid) >> { >> - int ret; >> - phys_addr_t kernel_end; >> + phys_addr_t kernel_end, ret; >> /* pump up @end */ >> if (end == MEMBLOCK_ALLOC_ACCESSIBLE) > > Hi, Tang Chen It is OK now. Tested-by: Xishi Qiu <qiuxishi@xxxxxxxxxx> > . > -- 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/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>