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

