aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorYinghai Lu <yinghai@kernel.org>2009-06-16 18:33:00 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2009-06-16 22:47:43 -0400
commit73d60b7f747176dbdff826c4127d22e1fd3f9f74 (patch)
treed4f72cfe145ed3d2ae19a56fe9f9f6424d597c44
parent286973552f051404abdb58dd9b2f8f7558efe4e5 (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>
-rw-r--r--mm/page_alloc.c5
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();