From 348f3fe3d9865984e51e48ed2fd58c6697f10d01 Mon Sep 17 00:00:00 2001 From: Bob Picco Date: Sat, 5 Nov 2005 17:25:54 +0100 Subject: [PATCH] --- yaml --- r: 14224 b: refs/heads/master c: d3ee871e63d0a0c70413dc0aa5534b8d6cd6ec37 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/arch/x86_64/kernel/setup.c | 3 --- trunk/arch/x86_64/mm/numa.c | 18 +++++++++++++++++- 3 files changed, 18 insertions(+), 5 deletions(-) diff --git a/[refs] b/[refs] index e9707d74dee3..a8236fefd860 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 8893166ff8694f36655009aa9bf8e7f2e1c9339f +refs/heads/master: d3ee871e63d0a0c70413dc0aa5534b8d6cd6ec37 diff --git a/trunk/arch/x86_64/kernel/setup.c b/trunk/arch/x86_64/kernel/setup.c index 40c77f6fe4b0..750e01dcbdf4 100644 --- a/trunk/arch/x86_64/kernel/setup.c +++ b/trunk/arch/x86_64/kernel/setup.c @@ -412,7 +412,6 @@ contig_initmem_init(unsigned long start_pfn, unsigned long end_pfn) { unsigned long bootmap_size, bootmap; - memory_present(0, start_pfn, end_pfn); bootmap_size = bootmem_bootmap_pages(end_pfn)<> PAGE_SHIFT; end_pfn = end >> PAGE_SHIFT; - memory_present(nodeid, start_pfn, end_pfn); nodedata_phys = find_e820_area(start, end, pgdat_size); if (nodedata_phys == -1L) panic("Cannot find memory pgdat in node %d\n", nodeid); @@ -285,9 +284,26 @@ unsigned long __init numa_free_all_bootmem(void) return pages; } +#ifdef CONFIG_SPARSEMEM +static void __init arch_sparse_init(void) +{ + int i; + + for_each_online_node(i) + memory_present(i, node_start_pfn(i), node_end_pfn(i)); + + sparse_init(); +} +#else +#define arch_sparse_init() do {} while (0) +#endif + void __init paging_init(void) { int i; + + arch_sparse_init(); + for_each_online_node(i) { setup_node_zones(i); }