diff mbox series

[v3,7/7] mm/memblock: default region's nid may be MAX_NUMNODES

Message ID 20240507075833.6346-8-richard.weiyang@gmail.com (mailing list archive)
State New
Headers show
Series memblock: cleanup | expand

Commit Message

Wei Yang May 7, 2024, 7:58 a.m. UTC
On x86, the call flow looks like this:

numa_init()
    memblock_set_node(..., MAX_NUMNODES)
    numa_register_memblks()
        memblock_validate_numa_coverage()

If there is a hole, the nid for this region would stay to be
MAX_NUMNODES. Then memblock_validate_numa_coverage() will miss to report
it.

Signed-off-by: Wei Yang <richard.weiyang@gmail.com>
---
 mm/memblock.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
diff mbox series

Patch

diff --git a/mm/memblock.c b/mm/memblock.c
index 33a8b6f7b626..e085de63688a 100644
--- a/mm/memblock.c
+++ b/mm/memblock.c
@@ -751,7 +751,7 @@  bool __init_memblock memblock_validate_numa_coverage(unsigned long threshold_byt
 
 	/* calculate lose page */
 	for_each_mem_pfn_range(i, MAX_NUMNODES, &start_pfn, &end_pfn, &nid) {
-		if (nid == NUMA_NO_NODE)
+		if (nid == MAX_NUMNODES || nid == NUMA_NO_NODE)
 			nr_pages += end_pfn - start_pfn;
 	}