Skip to content

Commit

Permalink
bootmem, x86: Fix 32bit numa system without RAM on node 0
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Yinghai Lu authored and H. Peter Anvin committed Apr 1, 2010
1 parent 3379985 commit aa235fc
Showing 1 changed file with 7 additions and 1 deletion.
8 changes: 7 additions & 1 deletion mm/bootmem.c
Original file line number Diff line number Diff line change
@@ -312,7 +312,13 @@ unsigned long __init free_all_bootmem(void)
*/
return free_all_memory_core_early(MAX_NUMNODES);
#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
}

0 comments on commit aa235fc

Please sign in to comment.