mm/memblock: WARN_ON when nid differs from overlap region
authorWei Yang <weiyang@linux.vnet.ibm.com>
Fri, 4 Sep 2015 22:47:38 +0000 (15:47 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Fri, 4 Sep 2015 23:54:41 +0000 (16:54 -0700)
Each memblock_region has nid to indicates the Node ID of this range.  For
the overlap case, memblock_add_range() inserts the lower part and leave
the upper part as indicated in the overlapped region.

If the nid of the new range differs from the overlapped region, the
information recorded is not correct.

This patch adds a WARN_ON when the nid of the new range differs from the
overlapped region.

Signed-off-by: Wei Yang <weiyang@linux.vnet.ibm.com>
Acked-by: David Rientjes <rientjes@google.com>
Cc: Tejun Heo <tj@kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
mm/memblock.c

index 87108e7..95ce68c 100644 (file)
@@ -566,6 +566,9 @@ repeat:
                 * area, insert that portion.
                 */
                if (rbase > base) {
+#ifdef CONFIG_HAVE_MEMBLOCK_NODE_MAP
+                       WARN_ON(nid != memblock_get_region_node(rgn));
+#endif
                        nr_new++;
                        if (insert)
                                memblock_insert_region(type, i++, base,