summaryrefslogtreecommitdiffstats
path: root/arch/x86/kernel/srat_32.c
diff options
context:
space:
mode:
authorIngo Molnar <mingo@elte.hu>2008-06-09 10:57:16 +0200
committerIngo Molnar <mingo@elte.hu>2008-06-09 10:57:16 +0200
commit237749428552e2f81ec6c801482dfd8a777e470b (patch)
treed9299dc6c099cc91c7a00370515146e3999ae5d5 /arch/x86/kernel/srat_32.c
parentea57a5a6db8961de35cd1a4a80d8e01ee4307973 (diff)
downloadlinux-237749428552e2f81ec6c801482dfd8a777e470b.tar.bz2
Revert "x86, 32-bit: SRAT fix"
This reverts commit ea57a5a6db8961de35cd1a4a80d8e01ee4307973, a better fix will be merged.
Diffstat (limited to 'arch/x86/kernel/srat_32.c')
-rw-r--r--arch/x86/kernel/srat_32.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/arch/x86/kernel/srat_32.c b/arch/x86/kernel/srat_32.c
index 5eedd3fd4d49..32d8b1142938 100644
--- a/arch/x86/kernel/srat_32.c
+++ b/arch/x86/kernel/srat_32.c
@@ -240,7 +240,6 @@ static int __init acpi20_parse_srat(struct acpi_table_srat *sratp)
for (i = 0; i < MAX_APICID; i++)
apicid_2_node[i] = pxm_to_node(apicid_to_pxm[i]);
- remove_all_active_ranges();
for (j = 0; j < num_memory_chunks; j++){
struct node_memory_chunk_s * chunk = &node_memory_chunk[j];
printk("chunk %d nid %d start_pfn %08lx end_pfn %08lx\n",
@@ -248,8 +247,14 @@ static int __init acpi20_parse_srat(struct acpi_table_srat *sratp)
node_read_chunk(chunk->nid, chunk);
e820_register_active_regions(chunk->nid, chunk->start_pfn,
min(chunk->end_pfn, max_pfn));
- memory_present(chunk->nid, chunk->start_pfn,
- min(chunk->end_pfn, max_pfn));
+ }
+
+ for_each_online_node(nid) {
+ unsigned long start = node_start_pfn[nid];
+ unsigned long end = node_end_pfn[nid];
+
+ memory_present(nid, start, end);
+ node_remap_size[nid] = node_memmap_size_bytes(nid, start, end);
}
return 1;
out_fail: