From: Michal Hocko <[email protected]>

All current users of the altmap are in the memory hotplug code and
they use __vmemmap_populate explicitly (via __sparse_mem_map_populate).
Complain if somebody uses vmemmap_populate with altmap registered
because that could be an unexpected usage. Also call __vmemmap_populate
with NULL from that code path.

Signed-off-by: Michal Hocko <[email protected]>
---
 include/linux/mm.h | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/include/linux/mm.h b/include/linux/mm.h
index 3ce673570fb8..ae1fa053d09e 100644
--- a/include/linux/mm.h
+++ b/include/linux/mm.h
@@ -2456,8 +2456,12 @@ int __vmemmap_populate(unsigned long start, unsigned 
long end, int node,
 static inline int vmemmap_populate(unsigned long start, unsigned long end,
                int node)
 {
-       struct vmem_altmap *altmap = to_vmem_altmap(start);
-       return __vmemmap_populate(start, end, node, altmap);
+       /*
+        * All users of the altmap have to be explicit and use
+        * __vmemmap_populate directly
+        */
+       WARN_ON(to_vmem_altmap(start));
+       return __vmemmap_populate(start, end, node, NULL);
 }
 
 void vmemmap_populate_print_last(void);
-- 
2.13.2

Reply via email to