On Mon, 14 Jun 2021, Claudio Imbrenda wrote: > Commit 121e6f3258fe3 ("mm/vmalloc: hugepage vmalloc mappings") added > support for hugepage vmalloc mappings, it also added the flag > VM_NO_HUGE_VMAP for __vmalloc_node_range to request the allocation to > be performed with 0-order non-huge pages. This flag is not accessible > when calling vmalloc, the only option is to call directly > __vmalloc_node_range, which is not exported. > > This means that a module can't vmalloc memory with small pages. > > Case in point: KVM on s390x needs to vmalloc a large area, and it needs > to be mapped with non-huge pages, because of a hardware limitation. > > This patch adds the function vmalloc_no_huge, which works like vmalloc, > but it is guaranteed to always back the mapping using small pages. This > new function is exported, therefore it is usable by modules. > > Signed-off-by: Claudio Imbrenda <imbrenda@xxxxxxxxxxxxx> > Reviewed-by: Uladzislau Rezki (Sony) <urezki@xxxxxxxxx> > Acked-by: Nicholas Piggin <npiggin@xxxxxxxxx> > Cc: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> > Cc: Nicholas Piggin <npiggin@xxxxxxxxx> > Cc: Uladzislau Rezki (Sony) <urezki@xxxxxxxxx> > Cc: Catalin Marinas <catalin.marinas@xxxxxxx> > Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx> > Cc: Ingo Molnar <mingo@xxxxxxxxxx> > Cc: David Rientjes <rientjes@xxxxxxxxxx> > Cc: Christoph Hellwig <hch@xxxxxxxxxxxxx> Acked-by: David Rientjes <rientjes@xxxxxxxxxx>