upgrade to fedora-2.6.12-1.1398.FC4 + vserver 2.0.rc7
[linux-2.6.git] / arch / i386 / kernel / numaq.c
index 38c762d..e51edf0 100644 (file)
@@ -30,9 +30,7 @@
 #include <linux/module.h>
 #include <linux/nodemask.h>
 #include <asm/numaq.h>
-
-/* These are needed before the pgdat's are created */
-extern long node_start_pfn[], node_end_pfn[];
+#include <asm/topology.h>
 
 #define        MB_TO_PAGES(addr) ((addr) << (20 - PAGE_SHIFT))
 
@@ -40,8 +38,7 @@ extern long node_start_pfn[], node_end_pfn[];
  * Function: smp_dump_qct()
  *
  * Description: gets memory layout from the quad config table.  This
- * function also increments numnodes with the number of nodes (quads)
- * present.
+ * function also updates node_online_map with the nodes (quads) present.
  */
 static void __init smp_dump_qct(void)
 {
@@ -50,17 +47,22 @@ static void __init smp_dump_qct(void)
        struct sys_cfg_data *scd =
                (struct sys_cfg_data *)__va(SYS_CFG_DATA_PRIV_ADDR);
 
-       numnodes = 0;
-       for(node = 0; node < MAX_NUMNODES; node++) {
-               if(scd->quads_present31_0 & (1 << node)) {
+       nodes_clear(node_online_map);
+       for_each_node(node) {
+               if (scd->quads_present31_0 & (1 << node)) {
                        node_set_online(node);
-                       numnodes++;
                        eq = &scd->eq[node];
                        /* Convert to pages */
                        node_start_pfn[node] = MB_TO_PAGES(
                                eq->hi_shrd_mem_start - eq->priv_mem_size);
                        node_end_pfn[node] = MB_TO_PAGES(
                                eq->hi_shrd_mem_start + eq->hi_shrd_mem_size);
+
+                       memory_present(node,
+                               node_start_pfn[node], node_end_pfn[node]);
+                       node_remap_size[node] = node_memmap_size_bytes(node,
+                                                       node_start_pfn[node],
+                                                       node_end_pfn[node]);
                }
        }
 }