[PATCH 2/4] mm/sparse: skip no-map memblock check when fill_subsection_map

From: Li Chen
Date: Mon Jul 11 2022 - 08:43:45 EST


From: Li Chen <lchen@xxxxxxxxxxxxx>

When mhp use sparse_add_section, don't check no-map region,
so that to allow no-map reserved memory to get struct page
support.

Signed-off-by: Li Chen <lchen@xxxxxxxxxxxxx>
Change-Id: I0d2673cec1b66adf695251037a00c240976b226f
---
mm/sparse.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/mm/sparse.c b/mm/sparse.c
index 120bc8ea5293..a29cd1e7014f 100644
--- a/mm/sparse.c
+++ b/mm/sparse.c
@@ -690,7 +690,9 @@ static int fill_subsection_map(unsigned long pfn, unsigned long nr_pages)

if (bitmap_empty(map, SUBSECTIONS_PER_SECTION))
rc = -EINVAL;
- else if (bitmap_intersects(map, subsection_map, SUBSECTIONS_PER_SECTION))
+ else if (memblock_is_map_memory(PFN_PHYS(pfn)) &&
+ bitmap_intersects(map, subsection_map,
+ SUBSECTIONS_PER_SECTION))
rc = -EEXIST;
else
bitmap_or(subsection_map, map, subsection_map,
--
2.25.1