[PATCH 5/6] mm, sparse: complain about implicit altmap usage in vmemmap_populate

From: Michal Hocko
Date: Tue Aug 01 2017 - 08:42:49 EST


From: Michal Hocko <mhocko@xxxxxxxx>

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 <mhocko@xxxxxxxx>
---
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