|
@@ -36,10 +36,6 @@ static int num_node_memblks __initdata;
|
|
|
static struct bootnode node_memblk_range[NR_NODE_MEMBLKS] __initdata;
|
|
|
static int memblk_nodeid[NR_NODE_MEMBLKS] __initdata;
|
|
|
|
|
|
-/* Too small nodes confuse the VM badly. Usually they result
|
|
|
- from BIOS bugs. */
|
|
|
-#define NODE_MIN_SIZE (4*1024*1024)
|
|
|
-
|
|
|
static __init int setup_node(int pxm)
|
|
|
{
|
|
|
return acpi_map_pxm_to_node(pxm);
|
|
@@ -338,17 +334,6 @@ static int __init nodes_cover_memory(const struct bootnode *nodes)
|
|
|
return 1;
|
|
|
}
|
|
|
|
|
|
-static void __init unparse_node(int node)
|
|
|
-{
|
|
|
- int i;
|
|
|
- node_clear(node, nodes_parsed);
|
|
|
- node_clear(node, cpu_nodes_parsed);
|
|
|
- for (i = 0; i < MAX_LOCAL_APIC; i++) {
|
|
|
- if (apicid_to_node[i] == node)
|
|
|
- apicid_to_node[i] = NUMA_NO_NODE;
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
void __init acpi_numa_arch_fixup(void) {}
|
|
|
|
|
|
/* Use the information discovered above to actually set up the nodes. */
|
|
@@ -360,18 +345,8 @@ int __init acpi_scan_nodes(unsigned long start, unsigned long end)
|
|
|
return -1;
|
|
|
|
|
|
/* First clean up the node list */
|
|
|
- for (i = 0; i < MAX_NUMNODES; i++) {
|
|
|
+ for (i = 0; i < MAX_NUMNODES; i++)
|
|
|
cutoff_node(i, start, end);
|
|
|
- /*
|
|
|
- * don't confuse VM with a node that doesn't have the
|
|
|
- * minimum memory.
|
|
|
- */
|
|
|
- if (nodes[i].end &&
|
|
|
- (nodes[i].end - nodes[i].start) < NODE_MIN_SIZE) {
|
|
|
- unparse_node(i);
|
|
|
- node_set_offline(i);
|
|
|
- }
|
|
|
- }
|
|
|
|
|
|
if (!nodes_cover_memory(nodes)) {
|
|
|
bad_srat();
|
|
@@ -404,7 +379,7 @@ int __init acpi_scan_nodes(unsigned long start, unsigned long end)
|
|
|
|
|
|
if (node == NUMA_NO_NODE)
|
|
|
continue;
|
|
|
- if (!node_isset(node, node_possible_map))
|
|
|
+ if (!node_online(node))
|
|
|
numa_clear_node(i);
|
|
|
}
|
|
|
numa_init_array();
|