Messages in this thread | | | Date | Mon, 11 Aug 2014 10:03:52 +0800 | From | Xishi Qiu <> | Subject | Re: [PATCH 1/1] memblock, memhotplug: Fix wrong type in memblock_find_in_range_node(). |
| |
On 2014/8/10 14:14, tangchen wrote:
> Sorry, add Xishi Qiu <qiuxishi@huawei.com> > > 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@huawei.com> >> Signed-off-by: Tang Chen <tangchen@cn.fujitsu.com> >> --- >> 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@huawei.com>
> . >
| |