|
@@ -131,8 +131,8 @@ static int __init extract_lsb_from_nodes(const struct bootnode *nodes,
|
|
return i;
|
|
return i;
|
|
}
|
|
}
|
|
|
|
|
|
-int __init compute_hash_shift(struct bootnode *nodes, int numnodes,
|
|
|
|
- int *nodeids)
|
|
|
|
|
|
+static int __init compute_hash_shift(struct bootnode *nodes, int numnodes,
|
|
|
|
+ int *nodeids)
|
|
{
|
|
{
|
|
int shift;
|
|
int shift;
|
|
|
|
|
|
@@ -287,7 +287,7 @@ setup_node_bootmem(int nodeid, unsigned long start, unsigned long end)
|
|
node_set_online(nodeid);
|
|
node_set_online(nodeid);
|
|
}
|
|
}
|
|
|
|
|
|
-int __init numa_register_memblks(void)
|
|
|
|
|
|
+static int __init numa_register_memblks(void)
|
|
{
|
|
{
|
|
int i;
|
|
int i;
|
|
|
|
|
|
@@ -713,17 +713,13 @@ static int dummy_numa_init(void)
|
|
|
|
|
|
node_set(0, cpu_nodes_parsed);
|
|
node_set(0, cpu_nodes_parsed);
|
|
node_set(0, mem_nodes_parsed);
|
|
node_set(0, mem_nodes_parsed);
|
|
|
|
+ numa_add_memblk(0, 0, (u64)max_pfn << PAGE_SHIFT);
|
|
|
|
|
|
return 0;
|
|
return 0;
|
|
}
|
|
}
|
|
|
|
|
|
static int dummy_scan_nodes(void)
|
|
static int dummy_scan_nodes(void)
|
|
{
|
|
{
|
|
- /* setup dummy node covering all memory */
|
|
|
|
- memnode_shift = 63;
|
|
|
|
- memnodemap = memnode.embedded_map;
|
|
|
|
- memnodemap[0] = 0;
|
|
|
|
- memblock_x86_register_active_regions(0, 0, max_pfn);
|
|
|
|
init_memory_mapping_high();
|
|
init_memory_mapping_high();
|
|
setup_node_bootmem(0, 0, max_pfn << PAGE_SHIFT);
|
|
setup_node_bootmem(0, 0, max_pfn << PAGE_SHIFT);
|
|
numa_init_array();
|
|
numa_init_array();
|
|
@@ -784,6 +780,9 @@ void __init initmem_init(void)
|
|
if (WARN_ON(nodes_empty(node_possible_map)))
|
|
if (WARN_ON(nodes_empty(node_possible_map)))
|
|
continue;
|
|
continue;
|
|
|
|
|
|
|
|
+ if (numa_register_memblks() < 0)
|
|
|
|
+ continue;
|
|
|
|
+
|
|
if (!scan_nodes[i]())
|
|
if (!scan_nodes[i]())
|
|
return;
|
|
return;
|
|
}
|
|
}
|