diff options
author | Yinghai Lu <yinghai@kernel.org> | 2009-06-16 18:33:00 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2009-06-16 22:47:43 -0400 |
commit | 73d60b7f747176dbdff826c4127d22e1fd3f9f74 (patch) | |
tree | d4f72cfe145ed3d2ae19a56fe9f9f6424d597c44 /mm/page_alloc.c | |
parent | 286973552f051404abdb58dd9b2f8f7558efe4e5 (diff) |
page-allocator: clear N_HIGH_MEMORY map before we set it again
SRAT tables may contains nodes of very small size. The arch code may
decide to not activate such a node. However, currently the early boot
code sets N_HIGH_MEMORY for such nodes. These nodes therefore seem to be
active although these nodes have no present pages.
For 64bit N_HIGH_MEMORY == N_NORMAL_MEMORY, so that works for 64 bit too
Signed-off-by: Yinghai Lu <Yinghai@kernel.org>
Tested-by: Jack Steiner <steiner@sgi.com>
Acked-by: Christoph Lameter <cl@linux-foundation.org>
Cc: Mel Gorman <mel@csn.ul.ie>
Cc: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'mm/page_alloc.c')
-rw-r--r-- | mm/page_alloc.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/mm/page_alloc.c b/mm/page_alloc.c index c5fb017c9430..6407cbfccd77 100644 --- a/mm/page_alloc.c +++ b/mm/page_alloc.c | |||
@@ -4204,6 +4204,11 @@ void __init free_area_init_nodes(unsigned long *max_zone_pfn) | |||
4204 | early_node_map[i].start_pfn, | 4204 | early_node_map[i].start_pfn, |
4205 | early_node_map[i].end_pfn); | 4205 | early_node_map[i].end_pfn); |
4206 | 4206 | ||
4207 | /* | ||
4208 | * find_zone_movable_pfns_for_nodes/early_calculate_totalpages init | ||
4209 | * that node_mask, clear it at first | ||
4210 | */ | ||
4211 | nodes_clear(node_states[N_HIGH_MEMORY]); | ||
4207 | /* Initialise every node */ | 4212 | /* Initialise every node */ |
4208 | mminit_verify_pageflags_layout(); | 4213 | mminit_verify_pageflags_layout(); |
4209 | setup_nr_node_ids(); | 4214 | setup_nr_node_ids(); |