bootmem, x86: Fix 32bit numa system without RAM on node 0
When 32bit numa is used, free_all_bootmem() will still only go over with node id 0. If node 0 doesn't have RAM installed, the lowest populated node becomes low RAM. This one fixes BOOTMEM path by iterating over the bdata_list. -v3: add more comments, and fix bootmem path too. -v4: seperate from one big patch Signed-off-by: Yinghai Lu <yinghai@kernel.org> LKML-Reference: <4BB416D7.6090203@kernel.org> Signed-off-by: H. Peter Anvin <hpa@zytor.com>
This commit is contained in:
parent
337998587f
commit
aa235fc712
1 changed files with 7 additions and 1 deletions
|
@ -312,7 +312,13 @@ unsigned long __init free_all_bootmem(void)
|
||||||
*/
|
*/
|
||||||
return free_all_memory_core_early(MAX_NUMNODES);
|
return free_all_memory_core_early(MAX_NUMNODES);
|
||||||
#else
|
#else
|
||||||
return free_all_bootmem_core(NODE_DATA(0)->bdata);
|
unsigned long total_pages = 0;
|
||||||
|
bootmem_data_t *bdata;
|
||||||
|
|
||||||
|
list_for_each_entry(bdata, &bdata_list, list)
|
||||||
|
total_pages += free_all_bootmem_core(bdata);
|
||||||
|
|
||||||
|
return total_pages;
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue