]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - arch/x86_64/mm/k8topology.c
Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
[linux-2.6-omap-h63xx.git] / arch / x86_64 / mm / k8topology.c
index 5cf594f9230d49e724bf1504177c6403f6b7a01d..f983c75825d09f67a3cbb833d25165d80a5cd183 100644 (file)
@@ -49,11 +49,8 @@ int __init k8_scan_nodes(unsigned long start, unsigned long end)
        int found = 0;
        u32 reg;
        unsigned numnodes;
-       nodemask_t nodes_parsed;
        unsigned dualcore = 0;
 
-       nodes_clear(nodes_parsed);
-
        if (!early_pci_allowed())
                return -1;
 
@@ -65,6 +62,8 @@ int __init k8_scan_nodes(unsigned long start, unsigned long end)
 
        reg = read_pci_config(0, nb, 0, 0x60); 
        numnodes = ((reg >> 4) & 0xF) + 1;
+       if (numnodes <= 1)
+               return -1;
 
        printk(KERN_INFO "Number of nodes %d\n", numnodes);
 
@@ -102,7 +101,7 @@ int __init k8_scan_nodes(unsigned long start, unsigned long end)
                               nodeid, (base>>8)&3, (limit>>8) & 3); 
                        return -1; 
                }       
-               if (node_isset(nodeid, nodes_parsed)) { 
+               if (node_isset(nodeid, node_possible_map)) {
                        printk(KERN_INFO "Node %d already present. Skipping\n", 
                               nodeid);
                        continue;
@@ -149,10 +148,13 @@ int __init k8_scan_nodes(unsigned long start, unsigned long end)
                
                nodes[nodeid].start = base; 
                nodes[nodeid].end = limit;
+               e820_register_active_regions(nodeid,
+                               nodes[nodeid].start >> PAGE_SHIFT,
+                               nodes[nodeid].end >> PAGE_SHIFT);
 
                prevbase = base;
 
-               node_set(nodeid, nodes_parsed);
+               node_set(nodeid, node_possible_map);
        } 
 
        if (!found)