The only reason vmap_range_noflush() can sleep is because of pagetable allocations. The actual allocation mechanism is arch-specific so might_alloc() doesn't work here (what GFP flags would be used?). Hence, just add a comment. Signed-off-by: Brendan Jackman --- Changes in v2: - Switched from might_alloc() to keeping might_sleep() + comment - Link to v1: https://lore.kernel.org/r/20251208-b4-vmalloc-might_alloc-v1-1-94a9bb8ecb08@google.com --- mm/vmalloc.c | 1 + 1 file changed, 1 insertion(+) diff --git a/mm/vmalloc.c b/mm/vmalloc.c index a53c7462671bdd896f95712af71398ffbe22fb80..c23d378dd4446e2784505ec3d5bb9568fb0d3c9a 100644 --- a/mm/vmalloc.c +++ b/mm/vmalloc.c @@ -305,6 +305,7 @@ static int vmap_range_noflush(unsigned long addr, unsigned long end, int err; pgtbl_mod_mask mask = 0; + /* Might allocate pagetables. */ might_sleep(); BUG_ON(addr >= end); --- base-commit: ecc46e02e0abe025a6e840cba2d647f23fd1d721 change-id: 20251208-b4-vmalloc-might_alloc-754a791e4e10 Best regards, -- Brendan Jackman