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 87108e77e476a326d69ec748f4e300d713fbd192..95ce68c6da8adc0b8d4c925027a5b04b824ab381 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,