diff options
author | Xishi Qiu <[email protected]> | 2014-10-13 15:55:07 -0700 |
---|---|---|
committer | Linus Torvalds <[email protected]> | 2014-10-14 02:18:26 +0200 |
commit | bd5cfb8977fbb49d9350f7c81cf1516142e35a6a (patch) | |
tree | 3dd7aed530f32f54c7f84df2cfa8f8377a6a5e61 /include/linux/string_helpers.h | |
parent | 9470dd5d352985ba907df7554845f87a4b8f9ea5 (diff) |
arch/x86/mm/numa.c: fix boot failure when all nodes are hotpluggable
If all the nodes are marked hotpluggable, alloc node data will fail.
Because __next_mem_range_rev() will skip the hotpluggable memory
regions. numa_clear_kernel_node_hotplug() is called after alloc node
data.
numa_init()
...
ret = init_func(); // this will mark hotpluggable flag from SRAT
...
memblock_set_bottom_up(false);
...
ret = numa_register_memblks(&numa_meminfo); // this will alloc node data(pglist_data)
...
numa_clear_kernel_node_hotplug(); // in case all the nodes are hotpluggable
...
numa_register_memblks()
setup_node_data()
memblock_find_in_range_node()
__memblock_find_range_top_down()
for_each_mem_range_rev()
__next_mem_range_rev()
This patch moves numa_clear_kernel_node_hotplug() into
numa_register_memblks(), clear kernel node hotpluggable flag before
alloc node data, then alloc node data won't fail even all the nodes
are hotpluggable.
[[email protected]: coding-style fixes]
Signed-off-by: Xishi Qiu <[email protected]>
Cc: Dave Jones <[email protected]>
Cc: Tang Chen <[email protected]>
Cc: Gu Zheng <[email protected]>
Cc: Ingo Molnar <[email protected]>
Cc: "H. Peter Anvin" <[email protected]>
Cc: Thomas Gleixner <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
Diffstat (limited to 'include/linux/string_helpers.h')
0 files changed, 0 insertions, 0 deletions