[PATCH 0/2] mm/vmalloc: harden remap_vmalloc_range_partial against NULL pages
From: Ye Liu
Date: Mon Oct 26 2026 - 02:09:44 EST
remap_vmalloc_range_partial() passes vmalloc_to_page()'s result to
vm_insert_page() unchecked, oopsing via page_folio() if the page is
NULL. The NULL case never happens today because VM_USERMAP areas keep
every page mapped, but that assumption is nowhere checked.
Patch 1 drops VM_DMA_COHERENT from the allow-list -- a dead entry (no
caller maps a DMA-coherent area through this path) whose presence also
opens a NULL-deref path, since VM_DMA_COHERENT is not in vrealloc's
shrink skip-list.
Patch 2 adds a WARN_ON(!page) to flag any future break at the
vmalloc_to_page() call site before the oops.
Patch 1 is a behavior change (no in-tree caller affected); Patch 2 is
dead code. The two are independent.
Signed-off-by: Ye Liu <liuye@xxxxxxxxxx>
---
Ye Liu (2):
mm/vmalloc: drop VM_DMA_COHERENT from remap_vmalloc_range_partial
mm/vmalloc: warn on NULL page in remap_vmalloc_range_partial
mm/vmalloc.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
---
base-commit: 2efb7a11f1aa4d2dc285fe2680cca22cb9f72f64
base-tree: git://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master
change-id: 20261026-vmalloc_remap-012cf418c2a8
Best regards,
--
Ye Liu <ye.liu@xxxxxxxxx>