mm/memblock: WARN_ON when nid differs from overlap region
authorWei Yang <[email protected]>
Fri, 4 Sep 2015 22:47:38 +0000 (15:47 -0700)
committerLinus Torvalds <[email protected]>
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 <[email protected]>
Acked-by: David Rientjes <[email protected]>
Cc: Tejun Heo <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
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,