On 08/15/2013 05:54 AM, Naoya Horiguchi wrote: > On Thu, Aug 08, 2013 at 06:16:17PM +0800, Tang Chen wrote: >> --- a/mm/memblock.c >> +++ b/mm/memblock.c > ... >> @@ -719,6 +723,10 @@ void __init_memblock __next_free_mem_range_rev(u64 *idx, int nid, >> if (nid != MAX_NUMNODES&& nid != memblock_get_region_node(m)) >> continue; >> >> + /* skip hotpluggable memory regions */ >> + if (m->flags& MEMBLOCK_HOTPLUG) >> + continue; >> + >> /* scan areas before each reservation for intersection */ >> for ( ; ri>= 0; ri--) { >> struct memblock_region *r =&rsv->regions[ri]; >> -- > > Why don't you add this also in __next_free_mem_range()? Hi Naoya, __next_free_mem_range_rev() is for for_each_free_mem_range_reverse(), which is only called in memblock_find_in_range_node(). But I think __next_free_mem_range() is for for_each_free_mem_range, which is called by many others. These callers could has nothing to do with memory hotplug. So I didn't add. Maybe adding the check here is not good. I'm trying to find somewhere to check MEMBLOCK_HOTPLUG. Thanks. :) -- 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>