|
@@ -498,13 +498,10 @@ static int __init numa_register_memblks(struct numa_meminfo *mi)
|
|
|
if (WARN_ON(nodes_empty(node_possible_map)))
|
|
|
return -EINVAL;
|
|
|
|
|
|
- for (i = 0; i < mi->nr_blks; i++)
|
|
|
- memblock_x86_register_active_regions(mi->blk[i].nid,
|
|
|
- mi->blk[i].start >> PAGE_SHIFT,
|
|
|
- mi->blk[i].end >> PAGE_SHIFT);
|
|
|
-
|
|
|
- /* for out of order entries */
|
|
|
- sort_node_map();
|
|
|
+ for (i = 0; i < mi->nr_blks; i++) {
|
|
|
+ struct numa_memblk *mb = &mi->blk[i];
|
|
|
+ memblock_set_node(mb->start, mb->end - mb->start, mb->nid);
|
|
|
+ }
|
|
|
|
|
|
/*
|
|
|
* If sections array is gonna be used for pfn -> nid mapping, check
|
|
@@ -538,6 +535,8 @@ static int __init numa_register_memblks(struct numa_meminfo *mi)
|
|
|
setup_node_data(nid, start, end);
|
|
|
}
|
|
|
|
|
|
+ /* Dump memblock with node info and return. */
|
|
|
+ memblock_dump_all();
|
|
|
return 0;
|
|
|
}
|
|
|
|
|
@@ -575,7 +574,7 @@ static int __init numa_init(int (*init_func)(void))
|
|
|
nodes_clear(node_possible_map);
|
|
|
nodes_clear(node_online_map);
|
|
|
memset(&numa_meminfo, 0, sizeof(numa_meminfo));
|
|
|
- remove_all_active_ranges();
|
|
|
+ WARN_ON(memblock_set_node(0, ULLONG_MAX, MAX_NUMNODES));
|
|
|
numa_reset_distance();
|
|
|
|
|
|
ret = init_func();
|