aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--arch/x86/mm/numa_64.c12
1 files changed, 2 insertions, 10 deletions
diff --git a/arch/x86/mm/numa_64.c b/arch/x86/mm/numa_64.c
index 9736204337b8..dc9516587cf5 100644
--- a/arch/x86/mm/numa_64.c
+++ b/arch/x86/mm/numa_64.c
@@ -768,15 +768,7 @@ static int __init split_nodes_interleave(struct numa_meminfo *ei,
768 memblock_x86_hole_size(end, physnodes[i].end) < size) 768 memblock_x86_hole_size(end, physnodes[i].end) < size)
769 end = physnodes[i].end; 769 end = physnodes[i].end;
770 770
771 /* 771 ret = emu_setup_memblk(ei, nid++ % nr_nodes, i,
772 * Avoid allocating more nodes than requested, which can
773 * happen as a result of rounding down each node's size
774 * to FAKE_NODE_MIN_SIZE.
775 */
776 if (nodes_weight(physnode_mask) + nid >= nr_nodes)
777 end = physnodes[i].end;
778
779 ret = emu_setup_memblk(ei, nid++, i,
780 physnodes[i].start, 772 physnodes[i].start,
781 min(end, physnodes[i].end)); 773 min(end, physnodes[i].end));
782 if (ret < 0) 774 if (ret < 0)
@@ -873,7 +865,7 @@ static int __init split_nodes_size_interleave(struct numa_meminfo *ei,
873 memblock_x86_hole_size(end, physnodes[i].end) < size) 865 memblock_x86_hole_size(end, physnodes[i].end) < size)
874 end = physnodes[i].end; 866 end = physnodes[i].end;
875 867
876 ret = emu_setup_memblk(ei, nid++, i, 868 ret = emu_setup_memblk(ei, nid++ % MAX_NUMNODES, i,
877 physnodes[i].start, 869 physnodes[i].start,
878 min(end, physnodes[i].end)); 870 min(end, physnodes[i].end));
879 if (ret < 0) 871 if (ret < 0)